Submission #61050

#TimeUsernameProblemLanguageResultExecution timeMemory
61050TuGSGeReLRice Hub (IOI11_ricehub)C++14
0 / 100
8 ms892 KiB
#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; if(k && md)cst=(md-k)*a[md]-c[md-1]+c[k-1]+c[kk]-c[md]-(kk-md)*a[md]; else if(md) cst=(md-k)*a[md]-c[md-1]+c[kk]-c[md]-(kk-md)*a[md]; else cst=c[kk]-c[md]-(kk-md)*a[md]; //cout<<k<<" "<<kk<<" "<<cst<<"\n"; if(cst<=b) return 1; else return 0; } ll fnd(ll k){ ll x=k,y=n-1; while(x+1<y){ ll mid=(x+y)/2; if(can(k,mid))x=mid; else y=mid; } return y; } 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++) ans=max(ans,fnd(i)-i+1); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...