Lang:G++
Edit12345678910111213141516171819202122232425262728#include <iostream>int Josephus(int n, int k) {if (n == 1) {return 0;} else if (n < 2 * k) {int ret = 0;for (int i = 2; i <= n; ++i)ret = (ret + k) % i;return ret;}int ret = Josephus(n - n / k, k), mod = n % k;if (ret < mod)ret = ret - mod + n;elseret = ret - mod + (ret - mod) / (k - 1);return ret;}int main() {int t, n, k;std::cin >> t;while (t--) {std::cin >> n >> k;std::cout << Josephus(n, k) << std::endl;}}