이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "ricehub.h"
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll psum[100005];
ll sm[100005];
ll b;
int r;
ll range(int r, int l) {
return psum[r] - psum[l - 1];
}
bool one(int k) {
if(k == 1) return true;
for(int i = 1; i + k - 1 <= r; i++) {
int m = i + k / 2;
ll lef = m - i;
ll rig = k - lef;
ll sum = (sm[m] * lef - range(m - 1, i)) + (range(i + k - 1, m) - sm[m] * rig);
if(sum <= b) return true;
}
return false;
}
int besthub(int R, int L, int x[], ll B) {
b = B; r = R;
for(int i = 1; i <= r; i++) {
psum[i] = psum[i - 1] + x[i - 1];
sm[i] = x[i - 1];
//cerr << psum[i] << '\n';
}
int l = 1, rr = r;
while(l < rr) {
int m = (l + rr + 1) / 2;
if(one(m)) l = m;
else rr = m - 1;
}
return l;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |