QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#801996#9864. Coinucup-team5657#ML 96ms57856kbC++141.1kb2024-12-07 11:14:192024-12-07 11:14:21

Judging History

你现在查看的是最新测评结果

  • [2024-12-07 11:14:21]
  • 评测
  • 测评结果:ML
  • 用时:96ms
  • 内存:57856kb
  • [2024-12-07 11:14:19]
  • 提交

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

output:


result: