# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
61279 | 2018-07-25T14:47:04 Z | TuGSGeReL | Rice Hub (IOI11_ricehub) | C++14 | 0 ms | 0 KB |
#include "ricehub.h" #include<bits/stdc++.h> #define ll long long #define mp make_pair #define pub push_back #define pob pop_back using namespace std; ll i,n,ans,a[111111],b,c[111111]; bool can(ll k, ll kk){ ll md=(k+kk)/2,cst; cst=(md-k-kk+md)*a[md]-c[md]+c[k]+c[kk+1]-c[md+1]; if(cst<=b) return 1; else return 0; } int besthub(int R, int L, int X[], long long B) { n=R; b=B; for(i=0;i<n;i++) a[i]=X[i]; c[0]=a[0]; for(i=1;i<n;i++)c[i]=c[i-1]+a[i]; for(i=0;i<R;i++){ ll x=i,y=n; while(x+1!=y){ ll mid=(x+y)/2; if(can(k,mid))x=mid; else y=mid; } ans=max(ans,y-i); } return ans; }