#include "ricehub.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int n,a[1000005];
ll k;
bool ch(int m){
ll suml = 0,sumr = 0;
for(int i = 0;i < (m - 1)/2;i++) suml += a[i];
for(int i = (m + 1)/2;i < m;i++) sumr += a[i];
if((1LL * (m - 1)/2 * a[(m - 1)/2] - suml) + (sumr - (1LL * m/2 * a[(m - 1)/2])) <= k)return 1;
for(int i = m;i < n;i++){
suml -= a[i - m];
suml += a[(m - 1)/2 + i - m];
sumr -= a[(m - 1)/2 + i - m + 1];
sumr += a[i];
if((1LL * (m - 1)/2 * a[(m - 1)/2 + i - m + 1] - suml) + (sumr - (1LL * m/2 * a[(m - 1)/2 + i - m + 1])) <= k)return 1;
}
// cout << endl;
return 0;
}
int besthub(int R, int L, int X[], long long B)
{
n = R;
k = B;
for(int i = 0;i < n;i++)a[i] = X[i];
int l = 2,r = n,ans = 1;
// ch(3);
while(l <= r){
int m = (l+r)/2;
if(ch(m)){
l = m + 1;
ans = m;
}else{
r = m - 1;
}
}
return ans;
}
| # | 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... |