#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<ll> pref, aa;
ll comp(int i, int l, int r) {
ll lc = i - l, rc = r - i;
return (aa[i]) * lc - (pref[i-1] - pref[l-1]) - (aa[i]) * rc + (pref[r] - pref[i]);
}
int besthub(int R, int L, int a[], long long B) {
n = R; k = B;
aa.resize(n+1);
for (int i = 0; i < n; i++) aa[i+1] = a[i];
int res = 0;
ll sum = 0;
pref.resize(n+1, 0);
for (int i = 1; i <= n; i++) pref[i] = pref[i-1] + aa[i];
int l, r;
l = 1; r = 1;
for (int i = 1; i <= n; i++) {
sum = comp(i, l, r);
while (sum > k) {
++l;
sum = comp(i, l, r);
}
while (r < n) {
ll nsum = comp(i, l, r+1);
if (nsum > k) {
break;
}
else {
sum = nsum;
r++;
}
}
while (r < n && l < n) {
if (sum < comp(i, l+1, r+1)) break;
l++;
r++;
sum = comp(i, l, r);
while (r < n && comp(i, l, r+1) <= k) {
sum = comp(i, l, ++r);
}
}
// cout << l << ' ' << r << '\n';
res = max(res, r - l + 1);
}
// cout << l << ' ' << r << ' ';
// for (int i = l; i <= r; i++) cout << aa[i] << ' ';
// 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... |