제출 #99225

#제출 시각아이디문제언어결과실행 시간메모리
99225eriksuenderhauf쌀 창고 (IOI11_ricehub)C++11
100 / 100
33 ms2208 KiB
#pragma GCC optimize("O3") #include "ricehub.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; const int MAXN = 1e6 + 5; int a[MAXN], n; int ok(ll b, int len) { ll cur = 0; for (int i = 0; i < len; i++) cur += abs((ll) a[i] - a[(len - 1) / 2]); if (cur <= b) return 1; for (int i = len; i < n; i++) { cur += (ll) (a[(len-1)/2+i-len+1]-a[(len-1)/2+i-len]) * (ll) ((len-1)/2+1); cur -= (ll) (a[(len-1)/2+i-len+1]-a[(len-1)/2+i-len]) * (ll) (len-((len-1)/2+1)); cur -= abs((ll) a[i - len] - a[(len-1)/2+i-len+1]); cur += abs((ll) a[i] - a[(len-1)/2+i-len+1]); if (cur <= b) return 1; } return 0; } int besthub(int r, int l, int x[], ll b) { for (int i = 0; i < r; i++) a[i] = x[i]; n = r; int lo = 1, hi = r, ans = 1; while (lo <= hi) { int m = (lo + hi) / 2; if (ok(b, m)) lo = m + 1, ans = m; else hi = m - 1; } return ans; } /*int main() { int ans = besthub(5, 20, {1, 2, 10, 12, 14}, 6); pri(ans); 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...