Submission #49996

#TimeUsernameProblemLanguageResultExecution timeMemory
49996DiuvenRice Hub (IOI11_ricehub)C++11
100 / 100
27 ms2284 KiB
#include "ricehub.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; const int MX=100010; int X[MX], n, xmx; ll S[MX]; ll _max(ll a, ll b){ return a>b ? a : b; } ll cost(int l, int r){ int mid=(l+r)/2; ll leftsum = 1LL*X[mid]*(mid-l+1) - (S[mid]-S[l-1]); ll rigtsum = (S[r]-S[mid]) - 1LL*X[mid]*(r-mid); return leftsum+rigtsum; } ll solve(ll maxCost){ ll ans=0; for(int l=1, r=1; l<=n; l++){ r=max(r,l); while(r<n && cost(l,r+1)<=maxCost) r++; if(cost(l,r)>maxCost) continue; ans=_max(ans, 0LL+r-l+1); } return ans; } int besthub(int R, int L, int XX[], ll B) { n=R, xmx=L; for(int i=1; i<=n; i++){ X[i]=XX[i-1]; S[i]=S[i-1]+X[i]; } return solve(B); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...