제출 #1190439

#제출 시각아이디문제언어결과실행 시간메모리
1190439boclobanchat이상한 기계 (APIO19_strange_device)C++20
100 / 100
440 ms39652 KiB
#include<bits/stdc++.h> using namespace std; const int MAXN=2e6+5; const long long INF=1e18+9; long long val[MAXN],L[MAXN],R[MAXN]; int pref[MAXN]; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); long long n,a,b; cin>>n>>a>>b; int cnt=0; long long k=a/__gcd(a,b+1),range=INF; if(INF/k>=b) range=b*k; val[++cnt]=0,val[++cnt]=range; for(int i=1;i<=n;i++) { long long l,r; cin>>l>>r; val[++cnt]=l%range,val[++cnt]=r%range+1; L[i]=l,R[i]=r; } sort(val+1,val+cnt+1); for(int i=1;i<=n;i++) { long long l=L[i],r=R[i]; long long a=l/range,b=r/range; if(a==b) { pref[lower_bound(val+1,val+cnt+1,l%range)-val]++; pref[lower_bound(val+1,val+cnt+1,r%range+1)-val]--; } else { if(a+2<=b) return cout<<range,0; pref[lower_bound(val+1,val+cnt+1,l%range)-val]++; pref[lower_bound(val+1,val+cnt+1,r%range+1)-val]--; pref[1]++,pref[cnt]--; } } long long ans=0; for(int i=1;i<cnt;i++) ans+=((pref[i]+=pref[i-1])>0)*(val[i+1]-val[i]); 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...