Submission #782492

#TimeUsernameProblemLanguageResultExecution timeMemory
782492devariaota이상한 기계 (APIO19_strange_device)C++17
5 / 100
383 ms524288 KiB
#include <bits/stdc++.h> using namespace std; # define int long long # define fir first # define sec second # define pb push_back const int cnst = 2e5+5; bool mutipletestcase = 0; //bool debug = false; int gcd(int a, int b) {return b ? gcd(b, a%b): a;} int lcm(int a, int b) {return a/gcd(a, b+1)*b;} void solve() { int n, a, b; cin >> n >> a >> b; pair<int, int> num[n+5]; for(int i = 1; i<=n; i++) { int x, y; cin >> x >> y; num[i] = {x, y}; } int val = lcm(a, b); int ans = 0; int get[val*2+5]; memset(get, 0, sizeof(get)); for(int i = 1; i<=n; i++) { int x, y; x = num[i].fir, y = num[i].sec; int len = y-x+1; if(len >= val) ans = val; x %= val; y %= val; if(!y) y += val; if(!x) x += val; if(y < x) y += val; // cerr << x << " " << y << endl; get[x]+=1, get[y+1] -= 1; } if(ans == val) cout << ans << endl; else { bool yes[val+5]; memset(yes, 0, sizeof(yes)); for(int i = 1; i<=2*val; i++) { get[i] += get[i-1]; // cerr << i << " " << get[i] << " " << endl; // if(get[i]) cerr << i << " "; if(get[i]) yes[i%val] = 1; } for(int i = 0; i<=val; i++) { if(yes[i]) ans++; } cout << ans << endl; } } signed main() { ios_base::sync_with_stdio(false); int t = 1; if(mutipletestcase) cin >> t; while(t--) solve(); }
#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...