Submission #252135

#TimeUsernameProblemLanguageResultExecution timeMemory
252135SugardorjStrange Device (APIO19_strange_device)C++14
100 / 100
2676 ms63224 KiB
#include <bits/stdc++.h> using namespace std; long long i,j,a,b,tt; long long x,r,m,n,s,t,k,l,y,z; set <pair<long long,long long>> p,c,d,e; int main(){ cin >> n>>a>>b; m = a/__gcd(a,b+1); if (m >1000000000000000000/b) m = 1000000000000000001; else m*=b; a=m; for (i = 0; i<n; i ++){ cin >>x>>y; if (y-x+1>=a){ cout << a; return 0; } x%=a; y%=a; if (x <=y){ p.insert({x,y}); } else { p.insert({0,y}); p.insert({x,a-1}); } } t = -1; while (p.size()){ auto u=*p.begin(); p.erase(*p.begin()); x=u.first; y=u.second; t=max(t,x-1); s+=max(y-t,0ll); t=max(y,t); } cout <<s; 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...