#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n;
vector<ll> arr, pre;
ll cost(int k) {
ll mnco = 1e18;
for(int i=1; i<=n-k+1; i++) {
ll left = (arr[i+(k/2)]*(k/2+1))-(pre[i+(k/2)]-pre[i-1]);
ll right = (pre[i+k-1]-pre[i+(k/2)])-(arr[i+(k/2)]*(k-(k/2)-1));
mnco = min(mnco, left+right);
}
return mnco;
}
int besthub(int R, int L, int X[], long long B) {
n=R;
arr.assign(R+10, 0);
pre.assign(R+10, 0);
for(int i=1; i<=R; i++) {
arr[i] = X[i-1];
pre[i] = pre[i-1] + arr[i];
}
int l=1, r=R;
while(l < r) {
int mid = (l+r)/2;
if(cost(mid) > B) {
r = mid;
} else {
l = mid+1;
}
}
return l;
}
# | 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... |