cses

My solution for the coding challenges of cses.fi
git clone https://git.tronto.net/cses
Download | Log | Files | Refs | README

josephus_queries_2164.cpp (299B)


      1 #include <iostream>
      2 
      3 int f(int n, int k, int m) {
      4 	int h = n/2 + m*(n%2);
      5 	if (n == 1) return 1;
      6 	if (k <= h) return 2*k-m;
      7 	return 2*f(n-h, k-h, m^(n%2))+m-1;
      8 }
      9 
     10 int main() {
     11 	int q, n, k;
     12 	std::cin >> q;
     13 	for (int i = 0; i < q; i++) {
     14 		std::cin >> n >> k;
     15 		std::cout << f(n, k, 0) << "\n";
     16 	}
     17 }