Submission #823364

#TimeUsernameProblemLanguageResultExecution timeMemory
82336412345678Rice Hub (IOI11_ricehub)C++17
100 / 100
15 ms3320 KiB
#include "ricehub.h"
#include <bits/stdc++.h>

using namespace std;

#define ll long long

int besthub(int R, int L, int X[], long long B)
{
  int ans=1;
  vector<ll> qs(R+1), v(R+1);
  for (int i=0; i<R; i++) v[i+1]=X[i], qs[i+1]=qs[i]+v[i+1];
  for (int i=1; i<=R; i++) 
  {
    int l=i, r=R;
    while (l<r)
    {
        int m=(l+r+1)/2;
        int md=(i+m)/2;
        ll ls=v[md]*(md-i+1)-(qs[md]-qs[i-1]);
        ll rs=qs[m]-qs[md]-v[md]*(m-md);
        if (ls+rs<=B) l=m;
        else r=m-1;
    }
    ans=max(ans, l-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...