이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "bits/stdc++.h"
#include "ricehub.h"
using namespace std;
using ll = long long;
const int maxn=1e5+5;
ll p[maxn],b;
int a[maxn];
bool check(int l,int r){
  int md = (l + r) >> 1;
  ll val = 1ll * a[md] * (md - l);
  if(md-1 >= 0) val -= p[md-1];
  if(l-1 >= 0) val += p[l-1];
  val += p[r] - p[md];
  val -= 1ll * a[md] * (r - md);
  return (val <= b);
}
int besthub(int R, int L, int X[], long long B){
  for(int i = 0;i < R;i++) a[i] = X[i];
  b = B;
  p[0] = X[0];
  for(int i = 1;i < R;i++) p[i] = p[i - 1] + X[i];
  int ans = 1;
  for(int i = 0;i < R;i++){
    int l = 0,r = i - 1,md,jg=i;
    while(l <= r){
      md = (l + r) >> 1;
      if(check(md,i)) jg=md,r=md-1;
      else l=md+1;
    }
    ans = max(ans,i-jg+1);
  }
  return ans;
}
// 5 20 6 1 2 10 12 14 3
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |