제출 #1242760

#제출 시각아이디문제언어결과실행 시간메모리
1242760andrewgopher이상한 기계 (APIO19_strange_device)C++20
100 / 100
579 ms66244 KiB
#include "bits/stdc++.h" using namespace std; #define fast ios_base::sync_with_stdio(0) , cin.tie(0) , cout.tie(0) //#define endl '\n' using ll=__int128; __int128 read() { __int128 x = 0, f = 1; char ch = getchar(); while (ch < '0' || ch > '9') { if (ch == '-') f = -1; ch = getchar(); } while (ch >= '0' && ch <= '9') { x = x * 10 + ch - '0'; ch = getchar(); } return x * f; } void print(__int128 x) { if (x < 0) { putchar('-'); x = -x; } if (x > 9) print(x / 10); putchar(x % 10 + '0'); } void solve() { int n; ll a,b; n=read(); a =read(); b=read(); ll m = a/gcd(b+1,a)*b; //vector<pair<ll,ll>> ivals; vector<pair<ll,bool>> evs; ll ans = -1; for (int i =0;i<n;i++){ ll l,r; l=read(); r=read(); //cin >> l >> r; if (r-l >= m-1){ ans = m; continue; } //add interval if (l%m <= r%m){ evs.push_back({l%m,false}); evs.push_back({r%m,true}); } else { evs.push_back({l%m,false}); evs.push_back({m-1,true}); evs.push_back({0,false}); evs.push_back({r%m,true}); } } if (ans!=-1){ print(ans); return; } ans=0; sort(evs.begin(),evs.end()); int i=0; int curis = 0; ll prevst = -1; while (i<evs.size()){ ll curt= evs[i].first; bool curty = evs[i].second; while (i<evs.size() && evs[i].first==curt && evs[i].second==curty){ if (!evs[i].second){ //cout << "start " << curt << endl; curis++; } else { //cout << "end " << curt << endl; curis--; } i++; } if (curis == 0){ ans += curt-prevst+1; prevst=-1; } else if (prevst==-1){ prevst=curt; } //cout << curis << " " << prevst << " " << ans << endl; } print(ans); //cout << ans << endl; } signed main() { fast; int t=1; while (t--) solve(); 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...