QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#801996 | #9864. Coin | ucup-team5657# | ML | 96ms | 57856kb | C++14 | 1.1kb | 2024-12-07 11:14:19 | 2024-12-07 11:14:21 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int T;
ll n, k;
inline ll _ceil(ll x, ll y) {
return x / y + !!(x % y);
}
inline ll solve1(ll n, ll k) {
if (n <= k) {
return n;
}
ll t = solve1(n - _ceil(n, k), k);
return _ceil(t * k, k - 1);
}
inline ll solve2(ll n, ll k) {
if (n <= k) {
return n;
}
if (k * k < n) {
return solve1(n, k);
}
ll p = _ceil(n, k), q = _ceil(k, p);
ll m = n - (p - 1) * q - min((n - 1) % k / p + 1, q);
ll t = solve2(m, k);
ll s = (t - 1) / (k - q) + 1, s0 = (t - 1) % (k - q) + 1;
ll l = 1, r = k;
while (l <= r) {
ll mid = (l + r) >> 1;
if (mid - min(q, _ceil(mid, s)) >= s0) {
r = mid - 1;
} else {
l = mid + 1;
}
}
return (s - 1) * k + l;
}
inline void solve() {
cin >> n >> k;
cout << solve2(n, k) << "\n";
}
int main() {
#ifdef LOCAL
assert(freopen("test.in", "r", stdin));
assert(freopen("test.out", "w", stdout));
#endif
ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
cin >> T;
while (T--) {
solve();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3604kb
input:
4 6 2 8 3 10000 2 1919810 114514
output:
4 8 8192 1919805
result:
ok 4 number(s): "4 8 8192 1919805"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3680kb
input:
100 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 2 11 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 3 11 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 4 11 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 10 5 11 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 6 11 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 7 10 7 11 8 2 8 3 8 4 8 5 8 6 8 7 8 8 8 9 8 10 8 11 9 ...
output:
2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 4 3 4 4 4 4 4 4 4 4 4 5 4 5 5 5 5 5 5 5 4 5 6 5 6 6 6 6 6 6 4 5 6 7 6 7 7 7 7 7 8 8 8 7 8 7 8 8 8 8 8 8 8 9 8 9 8 9 9 9 8 8 8 9 10 9 10 9 10 10 8 8 11 9 10 11 10 11 10 11
result:
ok 100 numbers
Test #3:
score: 0
Accepted
time: 0ms
memory: 3676kb
input:
100 100 10 100 11 100 12 100 13 100 14 100 15 100 16 100 17 100 18 100 19 101 10 101 11 101 12 101 13 101 14 101 15 101 16 101 17 101 18 101 19 102 10 102 11 102 12 102 13 102 14 102 15 102 16 102 17 102 18 102 19 103 10 103 11 103 12 103 13 103 14 103 15 103 16 103 17 103 18 103 19 104 10 104 11 10...
output:
93 94 92 98 98 94 96 100 96 95 93 94 101 98 98 101 96 100 96 101 93 94 101 98 98 101 96 100 102 101 93 94 101 98 98 101 103 100 102 101 104 104 101 98 98 101 103 100 102 101 104 104 101 98 98 101 103 100 102 101 104 104 101 98 106 101 103 100 102 101 104 104 101 107 106 101 103 107 102 107 104 104 1...
result:
ok 100 numbers
Test #4:
score: 0
Accepted
time: 0ms
memory: 3724kb
input:
100 10000 2 10000 3 10000 4 10000 5 10000 6 10000 7 10000 8 10000 9 10000 10 10000 11 10001 2 10001 3 10001 4 10001 5 10001 6 10001 7 10001 8 10001 9 10001 10 10001 11 10002 2 10002 3 10002 4 10002 5 10002 6 10002 7 10002 8 10002 9 10002 10 10002 11 10003 2 10003 3 10003 4 10003 5 10003 6 10003 7 10...
output:
8192 8091 8719 8279 9885 8980 8933 9756 9938 9526 8192 8091 8719 8279 9885 8980 8933 9756 9938 9526 8192 8091 8719 8279 9885 8980 8933 9756 9938 9526 8192 8091 8719 8279 9885 8980 8933 9756 9938 9526 8192 8091 8719 8279 9885 8980 8933 9756 9938 9526 8192 8091 8719 8279 9885 8980 8933 9756 9938 9526 ...
result:
ok 100 numbers
Test #5:
score: 0
Accepted
time: 1ms
memory: 3600kb
input:
100 10000 10 10000 11 10000 12 10000 13 10000 14 10000 15 10000 16 10000 17 10000 18 10000 19 10001 10 10001 11 10001 12 10001 13 10001 14 10001 15 10001 16 10001 17 10001 18 10001 19 10002 10 10002 11 10002 12 10002 13 10002 14 10002 15 10002 16 10002 17 10002 18 10002 19 10003 10 10003 11 10003 12...
output:
9938 9526 9903 9913 9713 9441 9949 9599 9984 9683 9938 9526 9903 9913 9713 9441 9949 9599 9984 9683 9938 9526 9903 9913 9713 9441 9949 9599 9984 9683 9938 9526 9903 9913 9713 9441 9949 9599 9984 9683 9938 9526 9903 9913 9713 9441 9949 9599 9984 9683 9938 9526 9903 9913 9713 9441 9949 9599 9984 9683 ...
result:
ok 100 numbers
Test #6:
score: 0
Accepted
time: 1ms
memory: 3672kb
input:
100 100000 100 100000 101 100000 102 100000 103 100000 104 100000 105 100000 106 100000 107 100000 108 100000 109 100001 100 100001 101 100001 102 100001 103 100001 104 100001 105 100001 106 100001 107 100001 108 100001 109 100002 100 100002 101 100002 102 100002 103 100002 104 100002 105 100002 106...
output:
99125 99684 99115 99174 99331 99117 99518 99951 99671 99544 99125 99684 99115 99174 99331 99117 99518 99951 99671 99544 99125 99684 99115 99174 99331 99117 99518 99951 99671 99544 99125 99684 99115 99174 99331 99117 99518 99951 99671 99544 99125 99684 99115 99174 99331 99117 99518 99951 99671 99544 ...
result:
ok 100 numbers
Test #7:
score: 0
Accepted
time: 1ms
memory: 3612kb
input:
100 9829300000 1000000000 9829300000 1000000001 9829300000 1000000002 9829300000 1000000003 9829300000 1000000004 9829300000 1000000005 9829300000 1000000006 9829300000 1000000007 9829300000 1000000008 9829300000 1000000009 9829300001 1000000000 9829300001 1000000001 9829300001 1000000002 9829300001...
output:
9829299995 9829299995 9829299997 9829300000 9829299999 9829299991 9829300000 9829299991 9829299999 9829299995 9829299995 9829299995 9829299997 9829300000 9829299999 9829300001 9829300000 9829300001 9829299999 9829299995 9829299995 9829299995 9829299997 9829300000 9829299999 9829300001 9829300000 982...
result:
ok 100 numbers
Test #8:
score: 0
Accepted
time: 27ms
memory: 3872kb
input:
100 9999381928 1232 9999381928 1233 9999381928 1234 9999381928 1235 9999381928 1236 9999381928 1237 9999381928 1238 9999381928 1239 9999381928 1240 9999381928 1241 9999381929 1232 9999381929 1233 9999381929 1234 9999381929 1235 9999381929 1236 9999381929 1237 9999381929 1238 9999381929 1239 99993819...
output:
9995638846 9993981206 9997382406 9994865205 9994009665 9995914019 9997757681 9993825977 9999146806 9993973586 9995638846 9993981206 9997382406 9994865205 9994009665 9995914019 9997757681 9993825977 9999146806 9993973586 9995638846 9993981206 9997382406 9994865205 9994009665 9995914019 9997757681 999...
result:
ok 100 numbers
Test #9:
score: 0
Accepted
time: 0ms
memory: 3724kb
input:
100 9182736475 2938475612 9182736475 2938475613 9182736475 2938475614 9182736475 2938475615 9182736475 2938475616 9182736475 2938475617 9182736475 2938475618 9182736475 2938475619 9182736475 2938475620 9182736475 2938475621 9182736476 2938475612 9182736476 2938475613 9182736476 2938475614 9182736476...
output:
9182736474 9182736474 9182736473 9182736473 9182736472 9182736473 9182736472 9182736472 9182736475 9182736475 9182736474 9182736474 9182736473 9182736473 9182736476 9182736473 9182736476 9182736476 9182736475 9182736475 9182736474 9182736474 9182736477 9182736477 9182736476 9182736477 9182736476 918...
result:
ok 100 numbers
Test #10:
score: 0
Accepted
time: 0ms
memory: 3672kb
input:
100 1827364563 8192837167 1827364563 8192837168 1827364563 8192837169 1827364563 8192837170 1827364563 8192837171 1827364563 8192837172 1827364563 8192837173 1827364563 8192837174 1827364563 8192837175 1827364563 8192837176 1827364564 8192837167 1827364564 8192837168 1827364564 8192837169 1827364564...
output:
1827364563 1827364563 1827364563 1827364563 1827364563 1827364563 1827364563 1827364563 1827364563 1827364563 1827364564 1827364564 1827364564 1827364564 1827364564 1827364564 1827364564 1827364564 1827364564 1827364564 1827364565 1827364565 1827364565 1827364565 1827364565 1827364565 1827364565 182...
result:
ok 100 numbers
Test #11:
score: 0
Accepted
time: 1ms
memory: 3676kb
input:
100 19283 712 19283 713 19283 714 19283 715 19283 716 19283 717 19283 718 19283 719 19283 720 19283 721 19284 712 19284 713 19284 714 19284 715 19284 716 19284 717 19284 718 19284 719 19284 720 19284 721 19285 712 19285 713 19285 714 19285 715 19285 716 19285 717 19285 718 19285 719 19285 720 19285 ...
output:
19263 19264 19256 19268 19271 19275 19277 19282 19273 19271 19263 19264 19284 19268 19271 19275 19277 19282 19273 19271 19263 19264 19284 19268 19271 19275 19277 19282 19273 19271 19263 19264 19284 19268 19271 19275 19277 19282 19273 19271 19263 19264 19284 19268 19271 19275 19277 19282 19273 19271 ...
result:
ok 100 numbers
Test #12:
score: 0
Accepted
time: 0ms
memory: 3684kb
input:
100 931872 2 931872 3 931872 4 931872 5 931872 6 931872 7 931872 8 931872 9 931872 10 931872 11 931873 2 931873 3 931873 4 931873 5 931873 6 931873 7 931873 8 931873 9 931873 10 931873 11 931874 2 931874 3 931874 4 931874 5 931874 6 931874 7 931874 8 931874 9 931874 10 931874 11 931875 2 931875 3 93...
output:
524288 699912 870067 897790 785937 915823 837326 857391 922673 924554 524288 699912 870067 897790 785937 915823 837326 857391 922673 924554 524288 699912 870067 897790 785937 915823 837326 857391 922673 924554 524288 699912 870067 897790 785937 915823 837326 857391 922673 924554 524288 699912 870067...
result:
ok 100 numbers
Test #13:
score: 0
Accepted
time: 1ms
memory: 3732kb
input:
100 8192839182 5 8192839182 6 8192839182 7 8192839182 8 8192839182 9 8192839182 10 8192839182 11 8192839182 12 8192839182 13 8192839182 14 8192839183 5 8192839183 6 8192839183 7 8192839183 8 8192839183 9 8192839183 10 8192839183 11 8192839183 12 8192839183 13 8192839183 14 8192839184 5 8192839184 6 ...
output:
6754235438 7152383772 8159686869 7351034658 7446026901 7946836488 7911147037 7780465391 8053838740 8120975993 6754235438 7152383772 8159686869 7351034658 7446026901 7946836488 7911147037 7780465391 8053838740 8120975993 6754235438 7152383772 8159686869 7351034658 7446026901 7946836488 7911147037 778...
result:
ok 100 numbers
Test #14:
score: 0
Accepted
time: 96ms
memory: 57856kb
input:
1 624316466073 510898
output:
624315891515
result:
ok 1 number(s): "624315891515"
Test #15:
score: -100
Memory Limit Exceeded
input:
1 584168471556 5933376145