제출 #1161322

#제출 시각아이디문제언어결과실행 시간메모리
1161322owoovoStrange Device (APIO19_strange_device)C++20
100 / 100
280 ms17064 KiB
#include <bits/stdc++.h>
#define ll long long
#define ll128 __int128_t
#define F first 
#define S second 
using namespace std;

int main() {
    cin.tie(0);
    ios::sync_with_stdio(0);
    int n;
    ll _a,_b;
    cin>>n>>_a>>_b;
    ll128 a=_a,b=_b,c=b+1,d=a*b/__gcd(a,c),t=1e18;
    ll mod;
    if(d>1e18)mod=1e18+1;
    else mod=d;
    vector<pair<ll,ll>> vc;
    ll ans=0;
    for(int i=0;i<n;i++){
        ll l,r;
        cin>>l>>r;
        if(r-l+1>=mod)ans=mod;
        l%=mod,r%=mod;
        if(r<l){
            vc.push_back({0,r});
            vc.push_back({l,mod-1});
        }else{
            vc.push_back({l,r});
        }
    }
    if(ans==mod){
        cout<<mod<<"\n";
        return 0;
    }
    sort(vc.begin(),vc.end());
    ll mx=-1;
    for(auto [x,y]:vc){
        mx=max(mx,x-1);
        ans+=max(y-mx,0ll);
        mx=max(mx,y);
    }
    cout<<ans<<"\n";
    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...