#include <bits/stdc++.h>
using namespace std;
bool check(int k, vector<long long> &pref, int R, long long B) {
long long min_wyn = LLONG_MAX;
int n = R - k + 1;
for (int l = 1; l <= n; l++) {
int r = l + k - 1;
int m = l + (k / 2);
long long temp_wyn = (long long)(m - l) * pref[m] - (pref[m] - pref[l - 1]);
temp_wyn += (pref[r] - pref[m]) - (long long)(r - m) * pref[m];
min_wyn = min(min_wyn, temp_wyn);
}
return min_wyn <= B;
}
long long besthub(int R, int L, int X[], long long B) {
vector<long long> pref(R + 1, 0);
for (int i = 1; i <= R; i++)
pref[i] = pref[i - 1] + X[i - 1];
int l = 1, r = R;
int wyn = 0;
while (l <= r) {
int mid = (l + r) / 2;
if (check(mid, pref, R, B)) {
wyn = mid;
l = mid + 1;
}
else {
r = mid - 1;
}
}
return wyn;
}
| # | 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... |