Submission #753285

#TimeUsernameProblemLanguageResultExecution timeMemory
753285acceptifyRice Hub (IOI11_ricehub)C++17
68 / 100
15 ms1472 KiB
#include "ricehub.h" #include <bits/stdc++.h> using namespace std; int besthub(int R, int L, int X[], long long B){ long long ps[R]; for (int i = 0; i < R; i++) ps[i] = X[i] + (i ? ps[i - 1] : 0); auto calc = [&] (int l, int r, int p) -> long long { long long sum = 0; sum += X[p] * (p - l + 1) - ps[p] + (l ? ps[l - 1] : 0); sum += ps[r] - ps[p] - X[p] * (r - p); return sum; }; int l = 0, r = R, res = 0; while (l <= r) { int mid = (l + r) / 2; long long cost = 1e18; for (int i = 0; i + mid - 1 < R; i++) { int p = (i + i + mid - 1) / 2; cost = min(cost, calc(i, i + mid - 1, p)); if ((i + i + mid - 1) % 2) cost = min(cost, calc(i, i + mid - 1, p + 1)); } if (cost <= B) l = mid + 1, res = mid; else r = mid - 1; } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...