제출 #82277

#제출 시각아이디문제언어결과실행 시간메모리
82277Bodo171Gap (APIO16_gap)C++14
100 / 100
83 ms2192 KiB
#include "gap.h" #include <iostream> #include <climits> using namespace std; const int nmax=100005; long long v[nmax]; long long mx,st,dr,act,inf,sup,i; int n; long long findGap(int T, int N) { n=N; if(T==1) { mx=0; v[0]=-1;v[n+1]=1LL*1e18; v[n+1]++;//don't mess with 1e18 for(i=1;i<=n/2;i++) { MinMax(v[i-1]+1,v[n-i+2]-1,&v[i],&v[n-i+1]); } if((n&1)) { MinMax(v[n/2]+1,v[n/2+2]-1,&v[(n+1)/2],&sup); } for(i=1;i<n;i++) mx=1LL*max(mx,1LL*v[i+1]-v[i]); return mx; } act=-1; long long mare=1LL*1e18; MinMax(0,mare,&inf,&sup); long long nn=n,ans=0; long long def=1LL*(sup-inf)/(nn-1); if((sup-inf)%(nn-1)) def+=1LL; act=1LL*inf;ans=1LL*def; long long dr_vechi=inf; for(long long i=1;i<=n-1&&act;i++) { MinMax(act+1LL*(i-1)*def+1,act+1LL*i*def,&st,&dr); if(dr!=-1) { ans=1LL*max(1LL*st-dr_vechi,ans); dr_vechi=dr; } }//am schimbat ca poate nu e eval bun return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...