Submission #1309397

#TimeUsernameProblemLanguageResultExecution timeMemory
1309397WarinchaiStrange Device (APIO19_strange_device)C++20
100 / 100
340 ms17080 KiB
#include<bits/stdc++.h>
#define int long long
using namespace std;
vector<pair<int,int>>v;
int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n,a,b;cin>>n>>a>>b;
    int m=a/__gcd(a,b+1);
    int pos=1e18/m;
    if(b>pos)m=1e18+5;
    else m=m*b;
    int can=0;
    //cerr<<"m:"<<m<<"\n";
    for(int i=0;i<n;i++){
        int l,r;cin>>l>>r;
        if(r-l+1>=m)can=1;
        l=l%m;
        r=r%m;
        if(l<=r)v.push_back({l,r});
        else v.push_back({0,r}),v.push_back({l,m-1});
    }
    sort(v.begin(),v.end());
    if(can)cout<<m;
    else{
        int en=-1;
        int ans=0;
        for(auto [l,r]:v){
            //cerr<<"l,r:"<<l<<" "<<r<<"\n";
            int st=max(en+1,l);
            ans+=max(0LL,r-st+1);
            en=max(r,en);
        }
        cout<<ans<<"\n";
    }
}
#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...