제출 #547567

#제출 시각아이디문제언어결과실행 시간메모리
547567LittleFlowers__이상한 기계 (APIO19_strange_device)C++17
0 / 100
5087 ms212 KiB
#include <algorithm> #include <bits/stdc++.h> #define ll long long #define fi first #define se second using namespace std; int v2(ll n) { int i=-1; while (n!=0) { n=n/2; i++; } } int n,i,i1,i2,j,status=0,idx,cnt; pair<ll,ll> in[2000001]; pair<ll,ll> out[2000001]; ll a,b,tmp,l,r; int main() { cin>>n>>a>>b; tmp=a/(__gcd(a,b+1)); i=0; while(i<n) { cin >> in[i].fi >> in[i].se; i++; } if (v2(tmp)+v2(b)>60) { i=0; tmp=0; while(i<n) { tmp=tmp+(in[i].se-in[i].fi+1); i++; } cout << tmp; } else { tmp=tmp*b; //cout << tmp; i=0; j=0; while (i<n) { if(in[i].fi/tmp == in[i].se/tmp) { out[i+j].fi=in[i].fi%tmp; out[i+j].se=in[i].se%tmp; } else if ((in[i].fi/tmp) +1 == in[i].se/tmp) { out[i+j].fi=in[i].fi%tmp; out[i+j].se=tmp-1; j++; out[i+j].fi=0; out[i+j].se=in[i].se%tmp; } else { status=1; } i++; } if (status==1) { cout << tmp; } else { idx=i+j+1; sort (out+0,out+idx); l=out[0].fi; r=out[0].se; cnt=r-l+1; i=1; while (i<idx) { if (out[i].fi>out[i-1].se) { l=out[i].fi; r=out[i].se; cnt=cnt+r-l+1; } else { if(out[i].se<=out[i-1].se) { } else { r=out[i].se; cnt=cnt+r-out[i-1].se; } } i++; } } cout << cnt; } }

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

strange_device.cpp: In function 'int v2(long long int)':
strange_device.cpp:16:1: warning: no return statement in function returning non-void [-Wreturn-type]
   16 | }
      | ^
#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...