제출 #540605

#제출 시각아이디문제언어결과실행 시간메모리
540605krit3379이상한 기계 (APIO19_strange_device)C++14
100 / 100
529 ms53324 KiB
#include<bits/stdc++.h>
using namespace std;
#define N 1000005
 
long long a,b,g,rb,l,r,ll,rr,flag,ans;
vector<pair<long long,long long>> p;
 
int main(){
    int n,i;
    scanf("%d %lld %lld",&n,&a,&b);
    g=__gcd(a,b+1);
    r=a/g;
    if(1e18/r>=b)rb=r*b;
    else rb=1e18+1;
    for(i=1;i<=n;i++){
        scanf("%lld %lld",&l,&r);
        if(r-l+1>=rb)flag=true;
        l%=rb;
        r%=rb;
        if(l<=r)p.push_back({l,r});
        else p.push_back({l,rb-1}),p.push_back({0,r});
    }
    if(flag){printf("%lld",rb);return 0;}
    sort(p.begin(),p.end());
    ll=-1;
    rr=-2;
    for(auto [l,r]:p){
        if(l<=rr)rr=max(rr,r);
        else{
            ans+=rr-ll+1;
            ll=l,rr=r;
        }
    }
    ans+=rr-ll+1;
    printf("%lld",ans);
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

strange_device.cpp: In function 'int main()':
strange_device.cpp:27:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   27 |     for(auto [l,r]:p){
      |              ^
strange_device.cpp:10:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 |     scanf("%d %lld %lld",&n,&a,&b);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
strange_device.cpp:16:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   16 |         scanf("%lld %lld",&l,&r);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~
#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...