Submission #1189096

#TimeUsernameProblemLanguageResultExecution timeMemory
1189096AvianshStrange Device (APIO19_strange_device)C++20
5 / 100
301 ms40552 KiB
#include <bits/stdc++.h> using namespace std; signed main(){ ios::sync_with_stdio(0); cin.tie(0); long long n,a,b; cin >> n >> a >> b; long long lc = a*b; //0->(lc-1) vector<array<long long,2>>rangs; for(int i = 0;i<n;i++){ long long l,r; cin >> l >> r; long long lmod = l%lc; long long rmod = r%lc; long long req = lc-lmod-1; if(l+req<=r){ //lmod-end is to be added. rangs.push_back({lmod,lc-1}); } else{ rangs.push_back({lmod,rmod}); } l+=req+1; assert(l%lc==0); lmod=l%lc; if(l+lc-1<=r){ rangs.push_back({0,lc-1}); } else if(l<=r){ rangs.push_back({0,rmod}); } } sort(rangs.begin(),rangs.end()); vector<array<long long,2>>ne; ne.push_back(*rangs.begin()); for(array<long long,2>a:rangs){ if(ne.back()[1]<a[0]){ ne.push_back(a); } else{ ne.back()[1]=max(ne.back()[1],a[1]); } } long long ans = 0; for(array<long long,2>a:ne){ ans+=a[1]-a[0]+1; } cout << ans; 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...