# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
469168 | 2021-08-31T03:30:54 Z | Cross_Ratio | Strange Device (APIO19_strange_device) | C++14 | 1033 ms | 48268 KB |
#include <bits/stdc++.h> #define int long long using namespace std; int gcd(int a, int b) { a = abs(a); b = abs(b); if(a < b) swap(a, b); while(b) { a %= b; swap(a, b); } return a; } vector<int> B; int getidx(int n) { return lower_bound(B.begin(),B.end(),n) - B.begin(); } struct SegTree { vector<int> seg; int MAX; SegTree(int N) { int i; for(i=2;i<2*N;i*=2) {} seg.resize(i); MAX = i; } int sum(int s, int e, int n, int ns, int ne) { if(e<=ns||ne<=s) return 0; if(s<=ns&&ne<=e) return seg[n]; int mid = ns + ne >> 1; return sum(s, e, 2*n, ns, mid) + sum(s, e, 2*n+1, mid, ne); } void update(int n) { n += MAX/2; n /= 2; while(n) { seg[n] = seg[2*n] + seg[2*n+1]; n /= 2; } } void Plus(int n) { seg[n+MAX/2]++; update(n); } void Minus(int n) { seg[n+MAX/2]--; update(n); } int sum(int s, int e) { return sum(s, e, 1, 0, MAX/2); } }; int L[1000005]; int R[1000005]; main() { cin.sync_with_stdio(false); cin.tie(0); cout.tie(0); int N, a, b; cin >> N >> a >> b; int d = gcd(a, b + 1); int c = a / d; assert(a % d == 0); __int128_t k2 = b * c; int k; if(k2 > 1e18 + 5) k = 1e18 + 5; else k = k2; assert(k < 1e18 + 10); bool isAll = false; int i; B.push_back(0); B.push_back(k); for(i=0;i<N;i++) { cin >> L[i] >> R[i]; if(R[i] - L[i] >= k-1) isAll = true; L[i] %= k; R[i] %= k; R[i]++; B.push_back(L[i]); B.push_back(R[i]); } sort(B.begin(),B.end()); B.erase(unique(B.begin(),B.end()),B.end()); SegTree tree(B.size() + 10); for(i=0;i<N;i++) { int l = getidx(L[i]); int r = getidx(R[i]); if(l < r) { tree.Plus(l); tree.Minus(r); } else { tree.Plus(0); tree.Minus(r); tree.Plus(l); tree.Minus(B.size()); } } int cnt = 0; for(i=0;i<B.size()-1;i++) { if(tree.sum(0,i+1)!=0) { cnt += B[i+1]-B[i]; } } if(isAll) cnt = k; cout << cnt; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 9 ms | 1052 KB | Output is correct |
3 | Correct | 9 ms | 976 KB | Output is correct |
4 | Correct | 0 ms | 204 KB | Output is correct |
5 | Correct | 0 ms | 204 KB | Output is correct |
6 | Correct | 0 ms | 204 KB | Output is correct |
7 | Correct | 1 ms | 332 KB | Output is correct |
8 | Correct | 1 ms | 332 KB | Output is correct |
9 | Correct | 0 ms | 332 KB | Output is correct |
10 | Correct | 1 ms | 204 KB | Output is correct |
11 | Correct | 1 ms | 204 KB | Output is correct |
12 | Correct | 0 ms | 204 KB | Output is correct |
13 | Correct | 1 ms | 204 KB | Output is correct |
14 | Correct | 0 ms | 332 KB | Output is correct |
15 | Correct | 1 ms | 332 KB | Output is correct |
16 | Correct | 8 ms | 976 KB | Output is correct |
17 | Correct | 94 ms | 5612 KB | Output is correct |
18 | Incorrect | 0 ms | 204 KB | Output isn't correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 1 ms | 204 KB | Output is correct |
3 | Correct | 0 ms | 204 KB | Output is correct |
4 | Correct | 0 ms | 204 KB | Output is correct |
5 | Incorrect | 0 ms | 204 KB | Output isn't correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 1 ms | 332 KB | Output is correct |
3 | Correct | 1 ms | 332 KB | Output is correct |
4 | Correct | 1 ms | 332 KB | Output is correct |
5 | Correct | 408 ms | 31676 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 942 ms | 48136 KB | Output is correct |
3 | Correct | 1033 ms | 48168 KB | Output is correct |
4 | Correct | 916 ms | 48076 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 942 ms | 48136 KB | Output is correct |
3 | Correct | 1033 ms | 48168 KB | Output is correct |
4 | Correct | 916 ms | 48076 KB | Output is correct |
5 | Correct | 1 ms | 204 KB | Output is correct |
6 | Correct | 897 ms | 48164 KB | Output is correct |
7 | Correct | 914 ms | 48108 KB | Output is correct |
8 | Correct | 923 ms | 48160 KB | Output is correct |
9 | Correct | 1000 ms | 48200 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 942 ms | 48136 KB | Output is correct |
3 | Correct | 1033 ms | 48168 KB | Output is correct |
4 | Correct | 916 ms | 48076 KB | Output is correct |
5 | Correct | 0 ms | 204 KB | Output is correct |
6 | Correct | 86 ms | 5644 KB | Output is correct |
7 | Correct | 90 ms | 5560 KB | Output is correct |
8 | Correct | 82 ms | 5608 KB | Output is correct |
9 | Correct | 89 ms | 5620 KB | Output is correct |
10 | Correct | 87 ms | 5584 KB | Output is correct |
11 | Correct | 91 ms | 5520 KB | Output is correct |
12 | Correct | 91 ms | 5640 KB | Output is correct |
13 | Correct | 103 ms | 5624 KB | Output is correct |
14 | Correct | 86 ms | 5560 KB | Output is correct |
15 | Correct | 92 ms | 5536 KB | Output is correct |
16 | Correct | 93 ms | 5672 KB | Output is correct |
17 | Correct | 106 ms | 5652 KB | Output is correct |
18 | Correct | 935 ms | 48256 KB | Output is correct |
19 | Correct | 943 ms | 48176 KB | Output is correct |
20 | Correct | 1000 ms | 48252 KB | Output is correct |
21 | Correct | 97 ms | 5560 KB | Output is correct |
22 | Correct | 86 ms | 5648 KB | Output is correct |
23 | Correct | 200 ms | 12720 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 95 ms | 5664 KB | Output is correct |
3 | Correct | 95 ms | 5644 KB | Output is correct |
4 | Correct | 1004 ms | 48212 KB | Output is correct |
5 | Correct | 93 ms | 5560 KB | Output is correct |
6 | Correct | 95 ms | 5560 KB | Output is correct |
7 | Correct | 92 ms | 5580 KB | Output is correct |
8 | Correct | 91 ms | 5560 KB | Output is correct |
9 | Correct | 92 ms | 5560 KB | Output is correct |
10 | Correct | 92 ms | 5644 KB | Output is correct |
11 | Correct | 91 ms | 5576 KB | Output is correct |
12 | Correct | 86 ms | 5600 KB | Output is correct |
13 | Correct | 92 ms | 5664 KB | Output is correct |
14 | Correct | 1010 ms | 48268 KB | Output is correct |
15 | Correct | 91 ms | 5560 KB | Output is correct |
16 | Correct | 896 ms | 48084 KB | Output is correct |
17 | Correct | 925 ms | 48244 KB | Output is correct |
18 | Incorrect | 1 ms | 204 KB | Output isn't correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 9 ms | 1052 KB | Output is correct |
3 | Correct | 9 ms | 976 KB | Output is correct |
4 | Correct | 0 ms | 204 KB | Output is correct |
5 | Correct | 0 ms | 204 KB | Output is correct |
6 | Correct | 0 ms | 204 KB | Output is correct |
7 | Correct | 1 ms | 332 KB | Output is correct |
8 | Correct | 1 ms | 332 KB | Output is correct |
9 | Correct | 0 ms | 332 KB | Output is correct |
10 | Correct | 1 ms | 204 KB | Output is correct |
11 | Correct | 1 ms | 204 KB | Output is correct |
12 | Correct | 0 ms | 204 KB | Output is correct |
13 | Correct | 1 ms | 204 KB | Output is correct |
14 | Correct | 0 ms | 332 KB | Output is correct |
15 | Correct | 1 ms | 332 KB | Output is correct |
16 | Correct | 8 ms | 976 KB | Output is correct |
17 | Correct | 94 ms | 5612 KB | Output is correct |
18 | Incorrect | 0 ms | 204 KB | Output isn't correct |