QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#21960#2828. Algebrahy_zheng_zai_nei_juan#AC ✓2967ms277212kbC++201.7kb2022-03-08 19:04:532022-05-08 04:20:22

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-05-08 04:20:22]
  • 评测
  • 测评结果:AC
  • 用时:2967ms
  • 内存:277212kb
  • [2022-03-08 19:04:53]
  • 提交

answer

#include <bits/stdc++.h>

int main() {
	std::ios::sync_with_stdio(false);
	std::cin.tie(nullptr);
	std::cout.tie(nullptr);
	int64_t n, m, k;
	while (std::cin >> n >> m >> k) {
		auto fastpow = [&](int64_t x, int64_t p) {
			const int64_t inf = 1e9;
			int64_t r = 1;
			while (p) {
				if (p & 1) r = std::min(inf, r * x);
				x = std::min(inf, x * x);
				p >>= 1;
			}
			return r;
		};
		auto solve = [&](int64_t n, int64_t m, int64_t k) -> int64_t{
			if (n == 1) {
				if (k == 1)
					return 2 * m * (2 * m + 1);
				return 0;
			}
			std::vector<std::vector<int>> divisors(m + 1, std::vector<int>());
			// Case 1: x == 0
			std::vector<std::pair<int, int>> vecs;
			auto report = [&](int a, int b, int x) {
				vecs.emplace_back(a, b);
			};
			for (int a = -m; a <= m; ++a)
				report(a, 0, 0);
			for (int64_t x = 1; x <= m; ++x) {
				int64_t z = fastpow(x, n - 1);
				if (z >= 1000'000'000) break;
				for (int _b = 0; _b <= m; _b += x) {
					for (int sgnx : {-1, 1})
						for (int sgnb : {-1, 1}) {
							if (_b == 0 && sgnb == -1)
								continue;
							int symbol = sgnx;
							if (n % 2 == 1 && sgnx == -1)
								symbol = 1;
							int64_t b = sgnb * _b, Za = b / x * sgnx;
							int64_t a = -Za - symbol * z;
							if (std::abs(a) > m) continue;
							report(a, b, sgnx * x);
						//	assert(fastpow(sgnx * x, n) + a * sgnx * x + b == 0);
						}
				}
			}
			int64_t ans = 0;
			std::sort(vecs.begin(), vecs.end());
			for (int l = 0, r; l < vecs.size(); ++l) {
				r = l;
				while (r + 1 < vecs.size() && vecs[r] == vecs[r + 1])
					++r;
				if (r - l + 1 == k)
					++ans;
				l = r;
			}	
			return ans;
		};
		std::cout << solve(n, m, k) << '\n';
	}
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 3ms
memory: 3540kb

input:

2 1 1
2 2 2
3 3 3

output:

1
7
1

result:

ok 3 lines

Test #2:

score: 0
Accepted
time: 134ms
memory: 3736kb

input:

1 1 1
1 2 1
1 3 1
1 4 1
1 5 1
1 6 1
1 7 1
1 8 1
1 9 1
1 10 1
1 11 1
1 12 1
1 13 1
1 14 1
1 15 1
1 16 1
1 17 1
1 18 1
1 19 1
1 20 1
1 21 1
1 22 1
1 23 1
1 24 1
1 25 1
1 26 1
1 27 1
1 28 1
1 29 1
1 30 1
1 31 1
1 32 1
1 33 1
1 34 1
1 35 1
1 36 1
1 37 1
1 38 1
1 39 1
1 40 1
1 41 1
1 42 1
1 43 1
1 44 1
1...

output:

6
20
42
72
110
156
210
272
342
420
506
600
702
812
930
1056
1190
1332
1482
1640
1806
1980
2162
2352
2550
2756
2970
3192
3422
3660
3906
4160
4422
4692
4970
5256
5550
5852
6162
6480
6806
7140
7482
7832
8190
8556
8930
9312
9702
10100
10506
10920
11342
11772
12210
12656
13110
13572
14042
14520
15006
155...

result:

ok 9801 lines

Test #3:

score: 0
Accepted
time: 141ms
memory: 3716kb

input:

1 1 2
1 2 2
1 3 2
1 4 2
1 5 2
1 6 2
1 7 2
1 8 2
1 9 2
1 10 2
1 11 2
1 12 2
1 13 2
1 14 2
1 15 2
1 16 2
1 17 2
1 18 2
1 19 2
1 20 2
1 21 2
1 22 2
1 23 2
1 24 2
1 25 2
1 26 2
1 27 2
1 28 2
1 29 2
1 30 2
1 31 2
1 32 2
1 33 2
1 34 2
1 35 2
1 36 2
1 37 2
1 38 2
1 39 2
1 40 2
1 41 2
1 42 2
1 43 2
1 44 2
1...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
7
13
20
26
36
42
52
59
69
75
89
95
105
115
126
132
146
152
166
176
186
192
210
217
227
237
251
257
2...

result:

ok 9801 lines

Test #4:

score: 0
Accepted
time: 137ms
memory: 3652kb

input:

1 1 3
1 2 3
1 3 3
1 4 3
1 5 3
1 6 3
1 7 3
1 8 3
1 9 3
1 10 3
1 11 3
1 12 3
1 13 3
1 14 3
1 15 3
1 16 3
1 17 3
1 18 3
1 19 3
1 20 3
1 21 3
1 22 3
1 23 3
1 24 3
1 25 3
1 26 3
1 27 3
1 28 3
1 29 3
1 30 3
1 31 3
1 32 3
1 33 3
1 34 3
1 35 3
1 36 3
1 37 3
1 38 3
1 39 3
1 40 3
1 41 3
1 42 3
1 43 3
1 44 3
1...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 9801 lines

Test #5:

score: 0
Accepted
time: 141ms
memory: 3620kb

input:

1 1 4
1 2 4
1 3 4
1 4 4
1 5 4
1 6 4
1 7 4
1 8 4
1 9 4
1 10 4
1 11 4
1 12 4
1 13 4
1 14 4
1 15 4
1 16 4
1 17 4
1 18 4
1 19 4
1 20 4
1 21 4
1 22 4
1 23 4
1 24 4
1 25 4
1 26 4
1 27 4
1 28 4
1 29 4
1 30 4
1 31 4
1 32 4
1 33 4
1 34 4
1 35 4
1 36 4
1 37 4
1 38 4
1 39 4
1 40 4
1 41 4
1 42 4
1 43 4
1 44 4
1...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 9801 lines

Test #6:

score: 0
Accepted
time: 141ms
memory: 3740kb

input:

1 1 100
1 2 100
1 3 100
1 4 100
1 5 100
1 6 100
1 7 100
1 8 100
1 9 100
1 10 100
1 11 100
1 12 100
1 13 100
1 14 100
1 15 100
1 16 100
1 17 100
1 18 100
1 19 100
1 20 100
1 21 100
1 22 100
1 23 100
1 24 100
1 25 100
1 26 100
1 27 100
1 28 100
1 29 100
1 30 100
1 31 100
1 32 100
1 33 100
1 34 100
1 3...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 9801 lines

Test #7:

score: 0
Accepted
time: 137ms
memory: 3592kb

input:

1 1 500000
1 2 500000
1 3 500000
1 4 500000
1 5 500000
1 6 500000
1 7 500000
1 8 500000
1 9 500000
1 10 500000
1 11 500000
1 12 500000
1 13 500000
1 14 500000
1 15 500000
1 16 500000
1 17 500000
1 18 500000
1 19 500000
1 20 500000
1 21 500000
1 22 500000
1 23 500000
1 24 500000
1 25 500000
1 26 5000...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 9801 lines

Test #8:

score: 0
Accepted
time: 167ms
memory: 3728kb

input:

578 237 1
713 995 1
335 454 1
640 374 1
718 942 1
924 478 1
783 694 1
530 793 1
368 502 1
829 291 1
26 32 1
335 212 1
668 98 1
856 793 1
195 958 1
748 337 1
636 73 1
771 608 1
290 152 1
536 945 1
406 436 1
240 85 1
673 849 1
178 951 1
595 462 1
285 105 1
972 369 1
575 295 1
484 149 1
860 903 1
641 1...

output:

1417
5968
2722
2239
5647
2863
4162
4753
3007
1744
187
1270
583
4753
5746
2017
433
3646
907
5665
2611
505
5092
5701
2770
628
2209
1768
889
5413
874
4807
1144
4045
355
439
5764
2269
5665
4576
979
4591
5287
1090
5419
4885
4237
1216
3121
4204
559
3904
3526
2368
2515
3424
3868
3691
4621
196
5176
4579
178...

result:

ok 996 lines

Test #9:

score: 0
Accepted
time: 141ms
memory: 3864kb

input:

203 885 2
132 672 2
671 241 2
919 476 2
961 866 2
557 937 2
517 834 2
883 978 2
367 370 2
298 167 2
554 463 2
666 921 2
416 249 2
414 587 2
426 517 2
605 207 2
115 766 2
495 375 2
755 573 2
336 884 2
936 419 2
968 412 2
14 553 2
284 785 2
219 558 2
746 307 2
100 715 2
782 61 2
106 525 2
87 731 2
830...

output:

0
3
0
0
0
0
0
0
0
3
3
3
3
3
3
0
0
0
0
3
3
3
3
3
0
3
3
3
3
0
3
0
0
3
0
0
3
3
0
3
3
0
3
0
3
0
0
0
0
0
0
3
3
0
0
0
3
3
3
0
3
3
0
0
3
0
3
0
3
3
0
0
3
3
0
3
3
3
3
0
0
0
3
3
3
3
0
3
0
3
0
3
3
3
3
3
0
3
3
0
0
0
0
3
3
0
3
0
3
0
0
0
3
0
3
0
0
0
3
0
3
3
0
0
0
0
3
3
0
0
0
0
3
3
3
3
0
0
3
0
0
0
10
0
3
0
0
0
3
0...

result:

ok 994 lines

Test #10:

score: 0
Accepted
time: 152ms
memory: 4008kb

input:

680 533 3
409 269 3
145 902 3
213 221 3
439 870 3
566 834 3
239 974 3
105 163 3
202 676 3
484 604 3
946 689 3
911 988 3
236 836 3
842 943 3
950 200 3
21 77 3
178 380 3
940 61 3
449 869 3
368 305 3
701 964 3
915 738 3
472 739 3
163 137 3
794 93 3
337 991 3
663 63 3
481 390 3
59 901 3
249 433 3
327 15...

output:

0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
...

result:

ok 988 lines

Test #11:

score: 0
Accepted
time: 156ms
memory: 27488kb

input:

240363 277116 2
97128 25738 2
314633 50385 2
16721 95992 2
140375 28183 2
75271 6448 2
354012 11998 2
20088 3953 2
1095 99 2
33619 45 2
399698 32 2
395408 5 2
86410 6 2

output:

0
3
0
0
0
0
3
3
0
0
3
3
3

result:

ok 13 lines

Test #12:

score: 0
Accepted
time: 168ms
memory: 46816kb

input:

43764 458932 3
475378 11851 3
302405 25039 3
475095 505 3
144912 51 3
166449 351 3
134516 1768 3
349953 807 3
425147 239 3
116238 285 3
373794 99 3
305801 1 3
465817 32 3
167314 4 3
441446 4 3
309241 8 3
462352 8 3
452008 14 3
410841 1 3
195328 1 3

output:

0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0

result:

ok 20 lines

Test #13:

score: 0
Accepted
time: 163ms
memory: 20264kb

input:

208927 82695 10
480469 112188 10
159347 123242 10
209065 63110 10
251159 45081 10
426688 45862 10
27958 18684 10
332091 4883 10
123690 1286 10
287322 575 10
135302 1671 10
308539 450 10
296918 53 10
448480 207 10
334244 2 10
122933 1 10
373597 2 10
329552 2 10
371316 1 10
219194 3 10
117509 1 10
147...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

result:

ok 22 lines

Test #14:

score: 0
Accepted
time: 174ms
memory: 26088kb

input:

21139 219315 5000
486799 146895 5000
11917 27333 5000
437401 104559 5000
336669 954 5000
7873 572 5000
414204 150 5000
436939 105 5000
188387 52 5000
445845 15 5000
316389 32 5000
289763 12 5000
189983 4 5000
414712 1 5000
243662 1 5000

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

result:

ok 15 lines

Test #15:

score: 0
Accepted
time: 153ms
memory: 45796kb

input:

176736 412451 1

output:

2474701

result:

ok single line: '2474701'

Test #16:

score: 0
Accepted
time: 2924ms
memory: 277096kb

input:

2 500000 2

output:

14276189

result:

ok single line: '14276189'

Test #17:

score: 0
Accepted
time: 2967ms
memory: 277212kb

input:

2 499999 3

output:

0

result:

ok single line: '0'

Test #18:

score: 0
Accepted
time: 1400ms
memory: 146080kb

input:

3 500000 2

output:

124

result:

ok single line: '124'

Test #19:

score: 0
Accepted
time: 1381ms
memory: 146120kb

input:

3 499999 3

output:

15279

result:

ok single line: '15279'

Test #20:

score: 0
Accepted
time: 1048ms
memory: 146116kb

input:

4 500000 2

output:

2538

result:

ok single line: '2538'

Test #21:

score: 0
Accepted
time: 1058ms
memory: 146284kb

input:

4 499999 3

output:

0

result:

ok single line: '0'

Test #22:

score: 0
Accepted
time: 202ms
memory: 47768kb

input:

500000 499999 2

output:

3

result:

ok single line: '3'

Test #23:

score: 0
Accepted
time: 187ms
memory: 47784kb

input:

500000 499999 3

output:

0

result:

ok single line: '0'