Submission #207500

#TimeUsernameProblemLanguageResultExecution timeMemory
207500brcodeStrange Device (APIO19_strange_device)C++14
100 / 100
2260 ms53428 KiB
#include <iostream> #include <bits/stdc++.h> using namespace std; vector<pair<long long,long long>> seg; int main(){ long long n,a,b; cin>>n>>a>>b; a/=__gcd(a,b+1); long long mx = 1e18; if(mx/a<=b){ mx = 1e18; }else{ mx = a*b; } for(int i=0;i<n;i++){ long long l,r; cin>>l>>r; if(r-l+1>=mx){ cout<<mx<<endl; return 0; } l%=mx; r%=mx; if(l<=r){ seg.push_back(make_pair(l,r)); }else{ seg.push_back(make_pair(l,mx-1)); seg.push_back(make_pair(0,r)); } } sort(seg.begin(),seg.end()); long long ans = 0; long long l = seg[0].first; long long r = seg[0].second; for(auto x:seg){ if(r<x.first){ ans+=r-l+1; l=x.first; r=x.second; }else{ r= max(r,x.second); } } ans+=(r-l+1); cout<<ans<<endl; }
#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...