# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1128283 | knot222 | 쌀 창고 (IOI11_ricehub) | C11 | 0 ms | 0 KiB |
#include "ricehub.h"
#include<bits/stdc++.h>
#define ll long long int
using namespace std;
const int N=100005;
int n;
ll x[N];
ll qs[N];
ll bbb;
int check(int F) {
for (int l=1,r=F;r<=n;l++,r++) {
int m=(l+r)/2;
if (((F-1)/2)*x[m]-qs[m-1]+qs[l-1]+qs[r]-qs[m]-(F/2)*x[m]<=bbb) {
return 1;
}
}
return 0;
}
int besthub(int R, int L, int X[], long long B){
bbb=B;
n = R;
qs[0] = 0;
for (int i=0;i<R;i++) {
x[i+1] = X[i];
qs[i+1] = qs[i]+X[i];
}
int l=0;
int r=INT_MAX/2;
while (l<r) {
int mid = (l+r+1)/2;
if (check(mid)) {
l=mid;
} else {
r=mid-1;
}
}
return l;
}