Submission #418216

#TimeUsernameProblemLanguageResultExecution timeMemory
418216dxz05Rice Hub (IOI11_ricehub)C++14
100 / 100
23 ms2540 KiB
#include "ricehub.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; const int MAXN = 2e5 + 3e2; ll pref[MAXN]; ll sum(int l, int r){ ll res = pref[r]; if (l) res -= pref[l - 1]; return res; } int besthub(int N, int L, int X[], long long B) { for (int i = 0; i < N; i++){ pref[i] = X[i]; if (i > 0) pref[i] += pref[i - 1]; } int ans = 0; for (int i = 0; i < N; i++){ int l = i, r = N - 1; while (l <= r){ int mid = (l + r) >> 1; int ind = (i + mid) / 2; int hub = X[ind]; ll cost = 1ll * hub * (ind - i + 1) - sum(i, ind); cost += sum(ind + 1, mid) - 1ll * hub * (mid - ind); if (cost <= B){ ans = max(ans, mid - i + 1); l = mid + 1; } else r = 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...