Submission #830218

#TimeUsernameProblemLanguageResultExecution timeMemory
830218OAleksaRice Hub (IOI11_ricehub)C++14
100 / 100
16 ms2796 KiB
#include <bits/stdc++.h> #include "ricehub.h" #define f first #define s second using namespace std; int besthub(int R, int L, int X[], long long B) { int n = R; int a[n]; for(int i = 0;i < n;i++) a[i] = X[i]; vector<long long> p(n); p[0] = a[0]; for(int i = 1;i < n;i++) p[i] = p[i - 1] + a[i]; auto check = [&](int l, int r) { int mid = (l + r) / 2; long long sl = 1ll * a[mid] * (mid - l + 1) - p[mid] + (l == 0 ? 0 : p[l - 1]); long long sr = 1ll * p[r] - p[mid] - 1ll * a[mid] * (r - mid); return sl + sr <= B; }; int ans = 1; for(int i = 0;i < n;i++) { int l = i, r = n - 1, mx = i; while(l <= r) { int mid = (l + r) / 2; if(check(i, mid)) { mx = mid; l = mid + 1; } else r = mid - 1; } ans = max(ans, mx - i + 1); } return ans; } // signed main() // { // ios_base::sync_with_stdio(false); // cin.tie(0); // cout.tie(0); // int tt = 1; // //cin >> tt; // while(tt--) { // int n, k; // long long x; // cin >> n >> k >> x; // int a[n]; // for(int i = 0;i < n;i++) // cin >> a[i]; // cout << besthub(n, k, a, x); // } // return 0; // }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...