ll qpow(ll a, ll b)// 快速幂 { ll res = 1; while (b) { if (b & 1) res *= a; a *= a, b /= 2; } return res; }
voidsolve() { cin >> x >> a >> b; if (a * x - b >= x) { cout << x << endl; return ; } if (a == 0 || x == 0) { cout << -b << endl; return ; } if (a == 1) { cout << x - (x / b + 1) * b << endl; return ; } ll d = a * x - b - x; for (int i = 1; ; i++) { if (x + d * (qpow(a, i) - 1) / (a - 1) < 0) { cout << x + d * (ksm(a, i) - 1) / (a - 1) << endl; break; } } return ; }
intmain() { cin >> T; while (T--) solve(); return0; }