# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
121023 | 2019-06-26T03:12:30 Z | turbat | Rice Hub (IOI11_ricehub) | C++14 | 0 ms | 0 KB |
include <bits/stdc++.h> #include "ricehub.h" using namespace std; long long s[100005]; long long can(int l, int r){ int mid = (l + r) / 2; if ((r - l) % 2 == 1) return s[r] + s[l - 1] - s[mid] - s[mid - 1]; return s[r] + s[l - 1] - 2 * s[mid]; } int besthub(int R, int L, int X[], long long B){ int ans = 0; for (int i = 1;i <= R;i++) s[i] = s[i - 1] + X[i - 1]; for (int i = 1;i <= R;i++){ int l = i, r = R, mid; while (l != r){ mid = (l + r + 1) / 2; if (can(i, mid) <= B) l = mid; else r = mid - 1; } ans = max(ans, l - i + 1); } return ans; }