Submission #1313683

#TimeUsernameProblemLanguageResultExecution timeMemory
1313683tsetsenbilegRice Hub (IOI11_ricehub)C++20
17 / 100
1 ms392 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<ll> pref, aa; ll comp(int i, int l, int r) { ll lc = i - l, rc = r - i; return (aa[i]) * lc - (pref[i-1] - pref[l-1]) - (aa[i]) * rc + (pref[r] - pref[i]); } int besthub(int R, int L, int a[], long long B) { n = R; k = B; aa.resize(n+1); for (int i = 0; i < n; i++) aa[i+1] = a[i]; int res = 0; ll sum = 0; pref.resize(n+1, 0); for (int i = 1; i <= n; i++) pref[i] = pref[i-1] + aa[i]; int l, r; l = 1; r = 1; for (int i = 1; i <= n; i++) { sum = comp(i, l, r); while (sum > k) { ++l; sum = comp(i, l, r); } while (r < n) { ll nsum = comp(i, l, r+1); if (nsum > k) { break; } else { sum = nsum; r++; } } while (r < n && l < n) { if (sum < comp(i, l+1, r+1)) break; l++; r++; sum = comp(i, l, r); while (r < n && comp(i, l, r+1) <= k) { sum = comp(i, l, ++r); } } // cout << l << ' ' << r << '\n'; res = max(res, r - l + 1); } // cout << l << ' ' << r << ' '; // for (int i = l; i <= r; i++) cout << aa[i] << ' '; // 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...