제출 #1309396

#제출 시각아이디문제언어결과실행 시간메모리
1309396Warinchai이상한 기계 (APIO19_strange_device)C++20
15 / 100
286 ms16984 KiB
#include<bits/stdc++.h>
#define int long long
using namespace std;
vector<pair<double,double>>v;
int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n,a,b;cin>>n>>a>>b;
    double tm=((double)a/__gcd(a,b+1))*b;
    long long m=1e18+5;
    if(tm<m)m=tm;
    int can=0;
    //cerr<<"m:"<<m<<"\n";
    for(int i=0;i<n;i++){
        long long 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;
        double ans=0;
        for(auto [l,r]:v){
            //cerr<<"l,r:"<<l<<" "<<r<<"\n";
            double st=max((double)en+1,(double)l);
            ans+=max(0.0,(double)r-(double)st+1.0);
            en=max((double)r,(double)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...