#include "ricehub.h"
#include <bits/stdc++.h>
using namespace std;
int besthub(int n, int m, int x[], long long b) {
vector<long long> pref(n + 1);
for (int i = 0; i < n; i++) {
pref[i + 1] = pref[i] + x[i];
}
int res = 0;
int l = 1;
for (int r = 1;r <= n;r++) {
while (l <= r) {
int mid = (l + r) / 2;
//cout << pref[mid - 1] - pref[l - 1] << " " << pref[r] - pref[mid] << " " <<
// x[mid - 1] * (mid - l) - (pref[mid - 1] - pref[l - 1]) << " " << (pref[r] - pref[mid]) - x[mid - 1] * (r - mid) << endl;
if (x[mid - 1] * (mid - l) - (pref[mid - 1] - pref[l - 1]) + (pref[r] - pref[mid]) - x[mid - 1] * (r - mid) <= b) {
break;
}
l++;
}
res = max(res, r - l + 1);
//pref[r] - pref[mid];
}
return res;
}
/*int main() {
int n = 5;
int a[n] = {1, 2, 10, 12, 14};
cout << besthub(n, 20, a, 6);
}*/
| # | 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... |