Task: | Kangaroo Keeping |
Sender: | ollpu |
Submission time: | 2018-09-20 17:29:01 +0300 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.02 s | details |
#2 | ACCEPTED | 0.02 s | details |
#3 | ACCEPTED | 0.01 s | details |
#4 | ACCEPTED | 0.04 s | details |
#5 | ACCEPTED | 0.06 s | details |
#6 | ACCEPTED | 0.38 s | details |
#7 | ACCEPTED | 0.08 s | details |
#8 | ACCEPTED | 0.21 s | details |
#9 | ACCEPTED | 0.21 s | details |
#10 | ACCEPTED | 0.21 s | details |
#11 | ACCEPTED | 0.23 s | details |
#12 | ACCEPTED | 0.22 s | details |
#13 | ACCEPTED | 0.22 s | details |
#14 | ACCEPTED | 0.22 s | details |
#15 | ACCEPTED | 0.23 s | details |
#16 | ACCEPTED | 0.11 s | details |
#17 | ACCEPTED | 0.10 s | details |
#18 | ACCEPTED | 0.11 s | details |
#19 | ACCEPTED | 0.11 s | details |
#20 | ACCEPTED | 0.10 s | details |
#21 | ACCEPTED | 0.35 s | details |
#22 | ACCEPTED | 0.36 s | details |
#23 | ACCEPTED | 0.35 s | details |
#24 | ACCEPTED | 0.35 s | details |
#25 | ACCEPTED | 0.35 s | details |
Code
#include <bits/stdc++.h> using namespace std; const int SN = 317; long cs[SN]; long sm[SN*SN], smb[SN]; int main() { ios::sync_with_stdio(0); cin.tie(0); int n, m, q; cin >> n >> m >> q; for (int qi = 0; qi < q; ++qi) { int t; cin >> t; if (t == 1) { int s; cin >> s; if (s < SN) cs[s]++; else { for (int i = s; i <= n; i += s) { sm[i]++; smb[i/SN]++; } } } else { int a, b; cin >> a >> b; long sum = 0; for (int i = 1; i < SN; ++i) { int xa = a/i+!!(a%i); int xb = b/i; if (xa > xb) continue; sum += (xb-xa+1)*cs[i]; } for (int i = a; i <= b; ++i) { if (i%SN || i+SN-1 > b) { sum += sm[i]; } else { sum += smb[i/SN]; i += SN-1; } } cout << sum << "\n"; } } }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
5 5 5 1 1 1 3 2 2 4 1 2 ... |
correct output |
---|
4 3 |
user output |
---|
4 3 |
Test 2
Verdict: ACCEPTED
input |
---|
1 1 1 2 1 1 |
correct output |
---|
0 |
user output |
---|
0 |
Test 3
Verdict: ACCEPTED
input |
---|
100000 1 2 1 1 2 100000 100000 |
correct output |
---|
1 |
user output |
---|
1 |
Test 4
Verdict: ACCEPTED
input |
---|
100000 100000 100000 1 1 1 1 1 1 1 1 ... |
correct output |
---|
9999900000 |
user output |
---|
9999900000 |
Test 5
Verdict: ACCEPTED
input |
---|
100000 100000 100000 1 1000 1 1000 1 1000 1 1000 ... |
correct output |
---|
(empty) |
user output |
---|
(empty) |
Test 6
Verdict: ACCEPTED
input |
---|
100000 100000 100000 2 41360 42905 2 13795 44578 2 9212 86083 2 4454 85230 ... |
correct output |
---|
0 0 0 0 0 ... |
user output |
---|
0 0 0 0 0 ... |
Test 7
Verdict: ACCEPTED
input |
---|
100000 100000 100000 1 707 1 707 1 707 1 707 ... |
correct output |
---|
(empty) |
user output |
---|
(empty) |
Test 8
Verdict: ACCEPTED
input |
---|
100000 100000 100000 1 75641 1 86337 1 919 2 52055 78208 ... |
correct output |
---|
30 4 2 41 56 ... |
user output |
---|
30 4 2 41 56 ... |
Test 9
Verdict: ACCEPTED
input |
---|
100000 100000 100000 1 1094 1 38459 2 45662 48692 2 19515 19577 ... |
correct output |
---|
3 0 23 138 0 ... |
user output |
---|
3 0 23 138 0 ... |
Test 10
Verdict: ACCEPTED
input |
---|
100000 100000 100000 1 61476 1 98132 1 87080 2 4975 73264 ... |
correct output |
---|
1 2 0 1 0 ... |
user output |
---|
1 2 0 1 0 ... |
Test 11
Verdict: ACCEPTED
input |
---|
100000 2000 100000 1 526 1 1201 1 1861 1 10 ... |
correct output |
---|
7956 2212 3687 5073 3005 ... |
user output |
---|
7956 2212 3687 5073 3005 ... |
Test 12
Verdict: ACCEPTED
input |
---|
100000 2000 100000 1 1301 2 83834 94897 1 2000 1 857 ... |
correct output |
---|
8 25 777 615 914 ... |
user output |
---|
8 25 777 615 914 ... |
Test 13
Verdict: ACCEPTED
input |
---|
100000 2000 100000 2 3520 99196 2 18209 43904 2 16177 56088 1 1746 ... |
correct output |
---|
0 0 0 7 33 ... |
user output |
---|
0 0 0 7 33 ... |
Test 14
Verdict: ACCEPTED
input |
---|
100000 2000 100000 2 5289 50318 2 40338 80604 2 6197 44146 2 16086 97494 ... |
correct output |
---|
0 0 0 0 0 ... |
user output |
---|
0 0 0 0 0 ... |
Test 15
Verdict: ACCEPTED
input |
---|
100000 2000 100000 1 546 2 78993 85390 2 13018 76714 1 1284 ... |
correct output |
---|
12 117 2028 2189 88 ... |
user output |
---|
12 117 2028 2189 88 ... |
Test 16
Verdict: ACCEPTED
input |
---|
100000 2000 100000 1 660 1 1867 1 101 1 661 ... |
correct output |
---|
86 1437 2351 2115 4388 ... |
user output |
---|
86 1437 2351 2115 4388 ... |
Test 17
Verdict: ACCEPTED
input |
---|
100000 2000 100000 1 1888 1 329 1 803 1 797 ... |
correct output |
---|
2156 2746 957 666 12216 ... |
user output |
---|
2156 2746 957 666 12216 ... |
Test 18
Verdict: ACCEPTED
input |
---|
100000 2000 100000 1 1053 1 899 1 536 1 641 ... |
correct output |
---|
300 3347 3075 8678 457 ... |
user output |
---|
300 3347 3075 8678 457 ... |
Test 19
Verdict: ACCEPTED
input |
---|
100000 2000 100000 1 1593 1 1168 1 1378 1 1269 ... |
correct output |
---|
290 1105 696 486 779 ... |
user output |
---|
290 1105 696 486 779 ... |
Test 20
Verdict: ACCEPTED
input |
---|
100000 2000 100000 1 898 1 439 1 63 1 722 ... |
correct output |
---|
1000 1618 1933 1433 14440 ... |
user output |
---|
1000 1618 1933 1433 14440 ... |
Test 21
Verdict: ACCEPTED
input |
---|
100000 2000 100000 1 1399 2 207 17310 2 14420 64381 2 70819 76130 ... |
correct output |
---|
12 36 4 18 25 ... |
user output |
---|
12 36 4 18 25 ... |
Test 22
Verdict: ACCEPTED
input |
---|
100000 2000 100000 2 42784 87411 1 285 2 24421 73874 1 1637 ... |
correct output |
---|
0 174 175 189 5 ... |
user output |
---|
0 174 175 189 5 ... |
Test 23
Verdict: ACCEPTED
input |
---|
100000 2000 100000 2 10644 50197 2 37981 97070 2 86512 92284 2 891 66025 ... |
correct output |
---|
0 0 0 0 0 ... |
user output |
---|
0 0 0 0 0 ... |
Test 24
Verdict: ACCEPTED
input |
---|
100000 2000 100000 2 8696 68110 2 5213 10368 2 49176 72628 1 61 ... |
correct output |
---|
0 0 0 942 1464 ... |
user output |
---|
0 0 0 942 1464 ... |
Test 25
Verdict: ACCEPTED
input |
---|
100000 2000 100000 1 887 2 10002 57043 2 51011 65029 2 39221 68055 ... |
correct output |
---|
53 16 32 63 41 ... |
user output |
---|
53 16 32 63 41 ... |