제출 #674722

#제출 시각아이디문제언어결과실행 시간메모리
674722vjudge1Strange Device (APIO19_strange_device)C++17
100 / 100
642 ms100132 KiB
#include<bits/stdc++.h> template<class T> inline void read(T &x){ x=0; register char c=getchar(); register bool f=0; while(!isdigit(c))f^=c=='-',c=getchar(); while(isdigit(c))x=x*10+c-'0',c=getchar(); if(f)x=-x; } template<class T> inline T gcd(T n,T m){return m?gcd(m,n%m):n;} const int N=1e6+10; int n; long long A,B,l,r,ans; std::map<long long,int> sum; int main(){ #ifdef memset0 freopen("1.in","r",stdin); #endif read(n),read(A),read(B); A/=gcd(A,B+1); if(A>(long long)(2e18)/B){ for(int i=1;i<=n;i++){ read(l),read(r); ans+=r-l+1; } printf("%lld\n",ans); return 0; } // printf("%lld %lld\n",A,B); for(int i=1;i<=n;i++){ read(l),read(r); if(r-l+1>=A*B){ printf("%lld\n",A*B); return 0; } l%=A*B,r%=A*B; // printf("> %lld %lld\n",l,r); if(l<=r){ sum[l]++,sum[r+1]--; }else{ sum[0]++,sum[r+1]--; sum[l]++,sum[A*B]--; } } sum[A*B]+=0; long long cnt=0,lst=0; for(const auto &it:sum){ if(cnt)ans+=it.first-lst; cnt+=it.second; lst=it.first; } printf("%lld\n",ans); }

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

strange_device.cpp: In function 'void read(T&)':
strange_device.cpp:3:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
    3 |  x=0; register char c=getchar(); register bool f=0;
      |                     ^
strange_device.cpp:3:48: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
    3 |  x=0; register char c=getchar(); register bool f=0;
      |                                                ^
strange_device.cpp:5:2: warning: this 'while' clause does not guard... [-Wmisleading-indentation]
    5 |  while(isdigit(c))x=x*10+c-'0',c=getchar(); if(f)x=-x;
      |  ^~~~~
strange_device.cpp:5:45: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'while'
    5 |  while(isdigit(c))x=x*10+c-'0',c=getchar(); if(f)x=-x;
      |                                             ^~
strange_device.cpp: In instantiation of 'void read(T&) [with T = int]':
strange_device.cpp:16:8:   required from here
strange_device.cpp:3:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
    3 |  x=0; register char c=getchar(); register bool f=0;
      |                     ^
strange_device.cpp:3:48: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
    3 |  x=0; register char c=getchar(); register bool f=0;
      |                                                ^
strange_device.cpp: In instantiation of 'void read(T&) [with T = long long int]':
strange_device.cpp:16:16:   required from here
strange_device.cpp:3:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
    3 |  x=0; register char c=getchar(); register bool f=0;
      |                     ^
strange_device.cpp:3:48: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
    3 |  x=0; register char c=getchar(); register bool f=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...