제출 #1189102

#제출 시각아이디문제언어결과실행 시간메모리
1189102Aviansh이상한 기계 (APIO19_strange_device)C++20
5 / 100
372 ms80876 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; __int128 lc = (__int128)a*b; //0->(lc-1) vector<array<__int128,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<__int128,2>>ne; ne.push_back(*rangs.begin()); for(array<__int128,2>a:rangs){ if(ne.back()[1]<a[0]){ ne.push_back(a); } else{ ne.back()[1]=max(ne.back()[1],a[1]); } } __int128 ans = 0; for(array<__int128,2>a:ne){ ans+=a[1]-a[0]+1; } cout << (long long)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...