Submission #1349370

#TimeUsernameProblemLanguageResultExecution timeMemory
1349370ttamxRice Hub (IOI11_ricehub)C++17
100 / 100
7 ms1860 KiB
#include "ricehub.h"

const int N=1e5+5;

int n;
long long b;
int a[N];
long long psum[N];

long long calc(int l,int r){
  int m=(l+r)/2;
  return ((psum[r]-psum[m])-1LL*a[m]*(r-m))+(1LL*a[m]*(m-l)-(psum[m-1]-psum[l-1]));
}

bool check(int mid){
  for(int l=1,r=mid;r<=n;l++,r++){
    if(calc(l,r)<=b)return true;
  }
  return false;
}

int besthub(int R, int L, int X[], long long B)
{
  n=R;
  b=B;
  for(int i=0;i<n;i++){
    a[i+1]=X[i];
  }
  for(int i=1;i<=n;i++){
    psum[i]=psum[i-1]+a[i];
  }
  int l=0,r=n;
  while(l<r){
    int mid=(l+r+1)/2;
    if(check(mid))l=mid;
    else r=mid-1;
  }
  return l;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...