# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1199719 | gugug | Rice Hub (IOI11_ricehub) | C++20 | 0 ms | 0 KiB |
#include "ricehub.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll besthub(ll n, ll nigger, ll arr[], ll money) {
ll l = 0, mid = 0, ans = 0, dist = 0;
for (ll r = 0; r < n; r++) {
dist += arr[r] - arr[mid];
while (mid < r && (mid - l + 1) <= (r - mid)) {
dist -= (r + l - mid * 2 - 1) * (arr[mid + 1] - arr[mid]);
mid++;
}
while (dist > money) {
dist -= arr[mid] - arr[l];
l++;
while (mid < r && (mid - l + 1) <= (r - mid) ) {
dist -= (r + l - mid * 2 - 1) * (arr[mid + 1] - arr[mid]);
mid++;
}
}
ans = max(ans, r - l + 1);
}
return ans;
}