#include "ricehub.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pr = pair<int, int>;
// #define pb push_back()
const int INF = 1e9+7;
int n;
ll k;
vector<int> pref, a;
int comp(int i, int l, int r) {
int lc = i - l + 1, rc = r - i + 1;
return (a[i] - a[l]) * lc - (pref[i] - pref[l-1]) + (a[r] - a[i]) * rc - (pref[r] - pref[i-1]);
}
int besthub(int R, int L, int b[], long long B) {
a.resize(n+1);
for (int i = 0; i < n; i++) a[i+1] = b[i];
n = R; k = B;
int res = 0;
ll sum = 0;
pref.resize(n+1, 0);
for (int i = 1; i <= n; i++) pref[i] = pref[i-1] + a[i];
int l, r;
l = 1; r = 1;
for (int i = 1; i <= n; i++) {
sum = comp(i, l, r);
while (sum > k) {
sum = comp(i, ++l, r);
}
while (r < n) {
int nsum = comp(i, l, r+1);
if (nsum > k) {
break;
}
else {
sum = nsum;
r++;
}
}
while (r < n && sum > comp(i, l+1, r+1)) {
l++;
while (comp(i, l, r) <= k && r <= n) {
sum = comp(i, l, r++);
}
}
res = max(res, r - l + 1);
}
// for (auto i : lef) cout << i << ' ';
// for (auto i : rig) cout << i << ' ';
return res;
}
| # | 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... |