Submission #1352160

#TimeUsernameProblemLanguageResultExecution timeMemory
1352160srividya_06이상한 기계 (APIO19_strange_device)C++20
100 / 100
263 ms16968 KiB
#include <bits/stdc++.h>
#define int long long
#define REP(i,a,b) for(int i = a; i<b; i++)
#define RREP(i,a,b) for(int i = a; i>b; i--)
#define pb push_back
using namespace std;
int INF = 2e18;
int32_t main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int n,a,b,len;
    cin>>n>>a>>b;
    int tmp = a/__gcd(a,b+1);
    if(tmp>=INF/b) len = INF;
    else len = tmp*b;
    vector<pair<int,int>> sweep;
    REP(i,0,n){
        int l,r;
        cin>>l>>r;
        if(r-l+1 >= len){
            cout<<len;
            return 0;
        }
        l = l%len;
        r = r%len;
        if(l<=r) sweep.pb({l,r});
        else{
            sweep.pb({0,r});
            sweep.pb({l,len-1});
        }
    }
    sort(sweep.begin(),sweep.end());
    int res = 0, ri = -1;
    for(auto[l,r] : sweep){
        res += max(0ll,(r - max(ri,l-1)));
        ri = max(ri,r);
    }
    cout<<res;
}
#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...