Submission #108174

#TimeUsernameProblemLanguageResultExecution timeMemory
108174SecretAgent007Rice Hub (IOI11_ricehub)C++17
100 / 100
39 ms2560 KiB
#include <bits/stdc++.h> #include "ricehub.h" using namespace std; const long long INF = 1e18; vector< long long > pref; long long calc(int left, int right, long long B, int X[]){ long long l = left, r = right; while(l < r){ long long mid = (l+r+1)/2; long long k = (left+mid)/2; long long cost = X[k-1]*(k-left+1)-(pref[k]-pref[left-1])+(pref[mid]-pref[k])-(mid-k)*X[k-1]; if(cost > B){ r = mid-1; }else{ l = mid; } } return l-left+1; } int besthub(int R, int L, int X[], long long B){ pref.resize(R+1); for(int i = 0; i < R; i++){ pref[i+1] += pref[i]; pref[i+1] += X[i]; } long long ans = -INF; for(int i = 1; i <= R; i++){ ans = max(calc(i,R,B,X), ans); } return ans; } /* signed main(){ ios::sync_with_stdio(false); cin.tie(0); int r, l, b; cin >> r >> l >> b; int x[r]; for(int i = 0; i < r; i++) cin >> x[i]; cout << besthub(r,l,x,b) << endl; } */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...