Submission #1313668

#TimeUsernameProblemLanguageResultExecution timeMemory
1313668tsetsenbilegRice Hub (IOI11_ricehub)C++20
0 / 100
1 ms332 KiB
#include "ricehub.h" #include <bits/stdc++.h> using namespace std; using ll = long long; using pr = pair<int, int>; // #define pb push_back() const int INF = 1e9+7; int n; ll k; vector<int> pref, a; int comp(int i, int l, int r) { int lc = i - l + 1, rc = r - i + 1; return (a[i] - a[l]) * lc - (pref[i] - pref[l-1]) + (a[r] - a[i]) * rc - (pref[r] - pref[i-1]); } int besthub(int R, int L, int b[], long long B) { a.resize(n+1); for (int i = 0; i < n; i++) a[i+1] = b[i]; n = R; k = B; int res = 0; ll sum = 0; pref.resize(n+1, 0); for (int i = 1; i <= n; i++) pref[i] = pref[i-1] + a[i]; int l, r; l = 1; r = 1; for (int i = 1; i <= n; i++) { sum = comp(i, l, r); while (sum > k) { sum = comp(i, ++l, r); } while (r < n) { int nsum = comp(i, l, r+1); if (nsum > k) { break; } else { sum = nsum; r++; } } while (r < n && sum > comp(i, l+1, r+1)) { l++; while (comp(i, l, r) <= k && r <= n) { sum = comp(i, l, r++); } } res = max(res, r - l + 1); } // for (auto i : lef) cout << i << ' '; // for (auto i : rig) cout << i << ' '; return 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...