| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1360689 | nataliaa | 쌀 창고 (IOI11_ricehub) | C++20 | 0 ms | 0 KiB |
#include "ricehub.h"
#include<bits/stdc++.h>
using namespace std;
int besthub(int r1, int l1, int x[], long long B)
{
long long R = r1;
long long L = l1;
int X[R];
for(int i = 0; i < R; i++) X[i] = x[i];
int pre[R]={};
pre[0] = X[0];
suf[R] = {};
suf[R-1] = X[R-1];
for(int i = 1; i<r1; i++){
pre[i] = pre[i-1]+X[i];
}
for(int i = R-2; i>= 0; i--){
suf[i] = suf[i]+suf[i+1];
}
long long ans = 0;
long long l = 0, r = R;
while(l<=r) {
long long m = (l+r)/2;
bool t = 0;
for(int i = 0; i < R ; i++) {
if(i+m<=R) {
long long cnt = 0;
long long l1 = i, r1 = n- i;
cnt = i*i - pre[i];
cnt += pre[R-1] - pre[i]*(n-i-1);
if(cnt<=B) {
t=1;
break;
}
}
else break;
}
if(t) l = m+1;
else r= m-1;
}
return r;
}