# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
991034 | stdfloat | Rice Hub (IOI11_ricehub) | C++17 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "ricehub.h"
#include "grader.cpp"
using namespace std;
using ll = long long;
int besthub(int n, int L, int X[], ll B) {
vector<ll> p(n);
for (int i = 0; i < n; i++)
p[i] = (i ? p[i - 1] : 0) + X[i];
int mx = 0;
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
int x = (j - i) >> 1;
if ((i & 1) == (j & 1)) {
if ((ll)(x + 1) * X[i + x] - p[i + x] + (i ? p[i - 1] : 0) + p[j] - p[i + x] - (ll)x * X[i + x] > B) break;
}
else {
int y = (X[i + x] + X[i + x + 1]) >> 1;
if ((ll)(x + 1) * y - p[i + x] + (i ? p[i - 1] : 0) + p[j] - p[i + x] - (ll)(x + 1) * y > B) break;
}
mx = max(mx, j - i + 1);
}
}
return mx;
}