#include <bits/stdc++.h>
#include "ricehub.h"
using namespace std;
long long sum[100005];
int a[100005];
long long getSum(int l, int r) {
long long ret = sum[r];
ret -= sum[l];
ret += a[l];
return ret;
}
int besthub(int n, int L, int X[], long long B) {
for (int i = 0; i < n; i++) {
a[i] = X[i];
}
sum[0] = a[0];
for (int i = 1; i < n; i++) {
sum[i] = sum[i - 1] + a[i];
}
int ans = -1;
for (int i = 0; i < n; i++) {
int lo = i;
int hi = n - 1;
int pos = -1;
while (lo <= hi) {
int mid = (lo + hi) / 2;
int med = (i + mid) / 2;
long long sumLeft = (long long) (med - i + 1) * a[med] - getSum(i, med);
long long sumRight = getSum(med + 1, mid) - (long long) (mid - med) * a[med];
if (sumLeft + sumRight <= B) {
pos = mid;
lo = mid + 1;
}
else {
hi = mid - 1;
}
}
ans = max(ans, pos - i + 1);
}
return ans;
}