Submission #1216749

#TimeUsernameProblemLanguageResultExecution timeMemory
1216749takoshanavaRice Hub (IOI11_ricehub)C++20
0 / 100
0 ms320 KiB
#include <bits/stdc++.h> //#define int long long #define pb push_back #define fs first #define sc second #include "ricehub.h" using namespace std; int besthub(int r, int l, int x[], long long b) { vector<long long> pref(r + 1, 0); for (int i = 0; i < r; i++) { pref[i + 1] = pref[i] + x[i]; } int ans = 1; int ll = 1, rr = r; while (ll <= rr) { int mid = (ll + rr) / 2; bool ok = false; for (int i = 0; i + mid <= r; ++i) { int s = i; int t = i + mid - 1; int p = (s + t) / 2; int rp = x[p]; int lcnt = p - s; long long lsum = pref[p] - pref[s]; int rcnt = t - p; long long rsum = pref[t + 1] - pref[p + 1]; long long cost = (rp * lcnt - lsum) + (rsum - rp * rcnt); if (cost <= b) { ok = true; break; } } if (ok) { ans = x[mid - 1]; ll = mid + 1; } else { rr = mid - 1; } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...