Submission #1216886

#TimeUsernameProblemLanguageResultExecution timeMemory
1216886giorgi123glmRice Hub (IOI11_ricehub)C++20
68 / 100
15 ms1864 KiB
#include "ricehub.h" #include <algorithm> #include <cstdlib> #include <iostream> #include <set> #include <vector> using namespace std; int besthub(int R, int L, int X[], long long B) { vector <int> v (R + 1); for (int i = 1; i <= R; i++) v[i] = X[i - 1]; vector <long long> pref (R + 1); for (int i = 1; i <= R; i++) pref[i] = pref[i - 1] + v[i]; int ans = 0; for (int i = 1; i <= R; i++) { // chooce rice hub int l = 0, r = R; while (l <= r) { int mid = (l + r) / 2; int x = mid / 2; int y = mid - x; if (i > (R + 1) / 2) swap (x, y); if (i - x - 1 < 0 || i + y > R) { r = mid - 1; continue; } long long prc = ( x * v[i] - (pref[i - 1] - pref[i - x - 1]) + (pref[i + y] - pref[i]) - y * v[i] ); if (prc <= B) { ans = max (ans, x + y + 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...