Submission #977060

#TimeUsernameProblemLanguageResultExecution timeMemory
977060dubabubaStrange Device (APIO19_strange_device)C++14
10 / 100
1252 ms63032 KiB
#include <bits/stdc++.h> using namespace std; #define int long long typedef pair<int, int> pii; #define ff first #define ss second #define MP make_pair int gcd(int a, int b) { if(a == 0) return b; if(b == 0) return a; return gcd(b % a, a); } signed main() { int a, b, n; cin >> n >> a >> b; int t = a / gcd(a, b + 1) * b; // tree *root = new tree(0, t - 1); set<pii> v; int l, r; bool gay = false; for(int i = 0; i < n; i++) { cin >> l >> r; if(r - l + 1 >= t) { gay = 1; continue; } l %= t; r %= t; if(l <= r) { // root->upt(l, r); v.insert(MP(l, r)); } else { // root->upt(l, t - 1); // root->upt(0, r); v.insert(MP(l, t - 1)); v.insert(MP(0, r)); } } if(gay) { cout << t << endl; return 0; } int ans = 0; l = 0, r = 0; for(pii p : v) { // cout << p.ff << ' ' << p.ss << endl; if(r < p.ff) { // cout << " + " << r - l + 1 << endl; ans += (r - l + 1); l = p.ff; } r = max(r, p.ss); } ans += (r - l + 1); cout << ans << endl; return 0; }
#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...