Submission #978418

#TimeUsernameProblemLanguageResultExecution timeMemory
978418NewtonabcRice Hub (IOI11_ricehub)C++14
17 / 100
67 ms4236 KiB
#include "ricehub.h" #include<bits/stdc++.h> using namespace std; int besthub(int R, int L, int X[], long long B) { const int N=1e5+10; long long qs[N]; double tX[N]; int mx=0; qs[0]=X[0]; tX[0]=X[0]; for(int i=1;i<R;i++) qs[i]=X[i]+qs[i-1],tX[i]=X[i]; for(int i=0;i<R;i++){ int l=i,r=R-1; while(l<r){ int mid=(l+r+1)/2; long long sum=qs[mid],bg=0; if(i>0) sum-=qs[i-1]; double mean=(double)sum/(double)(mid-i+1); int ind=lower_bound(tX+i,tX+mid,mean)-tX; if(ind-1>=0 && fabs(tX[ind]-mean)>fabs(tX[ind-1]-mean)) ind--; bg=(qs[mid]-qs[ind]-((long long)X[ind]*(long long)(mid-ind)))+((long long)X[ind]*(long long)(ind-i)); if(ind-1>=0) bg-=qs[ind-1]; if(i>0) bg+=qs[i-1]; if(bg<=B) l=mid; else r=mid-1; } mx=max(mx,l-i+1); } return mx; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...