Submission #1210911

#TimeUsernameProblemLanguageResultExecution timeMemory
1210911ofozRice Hub (IOI11_ricehub)C++20
100 / 100
8 ms1552 KiB
#include <bits/stdc++.h> using namespace std; int besthub(int n, int m, int a[], long long b) { vector<long long> prfx(n); prfx[0] = a[0]; for (long long i = 1; i < n; ++i) { prfx[i] = prfx[i - 1] + a[i]; } auto getPrfx = [&](long long l, long long r) -> long long { if (l > r) return 0; long long left = (l == 0) ? 0 : prfx[l - 1]; long long right = prfx[r]; return right - left; }; long long res = 1; long long l = 0, r = 0; while (r < n) { long long mid = (l + r) / 2; long long s = getPrfx(l, r) - a[mid]; long long s1 = getPrfx(l, mid - 1); long long s2 = getPrfx(mid + 1, r); long long d1 = mid - l; long long d2 = r - mid; long long score = s2 - 1LL * d2 * a[mid] + (1LL * d1 * a[mid] - s1); if (score <= b) { res = max(res, r - l + 1); ++r; } else { ++l; } } return (int)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...