| 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 ... Truncated |
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 ... Truncated |
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 ... Truncated |
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 ... Truncated |
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 ... Truncated |
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 ... Truncated |
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 ... Truncated |
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 ... Truncated |
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 ... Truncated |
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 ... Truncated |
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 ... Truncated |
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 ... Truncated |
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 ... Truncated |
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 ... Truncated |
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 ... Truncated |
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 ... Truncated |
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 ... Truncated |
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 ... Truncated |
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 ... Truncated |
