제출 #309467

#제출 시각아이디문제언어결과실행 시간메모리
309467cig32Gap (APIO16_gap)C++14
100 / 100
76 ms2416 KiB
#include "gap.h" #include<bits/stdc++.h> using namespace std; long long findGap(int T, int N) { if(T==1){ long long leftbound=0, rightbound=1e18; priority_queue <long long> pq; long long cnt=0; for(int i=0;i<=N/2;i++){ long long l,r; if(cnt!=N){ MinMax(leftbound,rightbound,&l,&r); pq.push(l); cnt++; if(l!=r){ pq.push(r); cnt++; leftbound=l+1; rightbound=r-1; } else break; } else break; } long long prev=pq.top(); pq.pop(); long long ans=0; while(pq.size()!=0){ ans=max(ans,prev-pq.top()); prev=pq.top(); pq.pop(); } return ans; } else{ // TODO: implementationt long long leftbound, rightbound; long long haha=1e18; MinMax(0, haha, &leftbound, &rightbound); if(N==2){ return rightbound-leftbound; } leftbound++; rightbound--; long long range_size=ceil((rightbound-leftbound)*1.0/N); long long dbsic_noob=(rightbound-leftbound+1); long long dbsic_sofai=ceil(dbsic_noob*1.0/(range_size)); long long arr[dbsic_sofai]; long long running=leftbound-1; for(int i=0;i<dbsic_sofai;i++){ arr[i]=range_size-1; if(i<(dbsic_noob/range_size)){ arr[i]++; } //printf("%lld\n",arr[i]); } long long ans=0,ans1=0,ans2=0; long long prevl, prevr=-1; bool ok=true; for(int i=0;i<dbsic_sofai;i++){ long long l,r; MinMax(running+1,running+arr[i],&l,&r); running+=arr[i]; if(l==-1 && r==-1){ continue; } else{ if(ok==true){ ok=false; ans1=l-leftbound+1; } ans2=rightbound+1-r; if(i!=0 && prevr!=-1 && ans<(l-prevr)){ ans=l-prevr; } prevl=l, prevr=r; } } ans1=max(ans1,ans2); ans=max(ans,ans1); return ans; } }

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

gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:59:19: warning: variable 'prevl' set but not used [-Wunused-but-set-variable]
   59 |         long long prevl, prevr=-1;
      |                   ^~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...