Submission #1208640

#TimeUsernameProblemLanguageResultExecution timeMemory
1208640k1r1t0Strange Device (APIO19_strange_device)C++20
35 / 100
406 ms31948 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int N = 1100000; int n, a, b, c, l[N], r[N]; vector<int> tt; int32_t main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> a >> b; c = a * b / gcd(a, b + 1); for (int i = 1; i <= n; i++) { cin >> l[i] >> r[i]; if (r[i] - l[i] + 1 >= c) { cout << c; return 0; } if (l[i] % c <= r[i] % c) { tt.push_back(-(l[i] % c + 1)); tt.push_back(r[i] % c + 1); } else { tt.push_back(-1); tt.push_back(r[i] % c + 1); tt.push_back(-(l[i] % c + 1)); tt.push_back(c); } } sort(begin(tt), end(tt), [&](int i, int j) { return abs(i) < abs(j) || (abs(i) == abs(j) && i < j); }); int ans = 0, last = -1, cnt = 0; for (int x : tt) { if (x > 0) { cnt--; if (cnt == 0) ans += x - last + 1; } else { cnt++; if (cnt == 1) last = -x; } } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...