이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "ricehub.h"
#include<bits/stdc++.h>
using namespace std ;
vector<int>v;
int sz;
long long mx , l , prfsum[1000000];
bool ok(int md){
long long sum = 0 , mn = 1e18 ;
for(int i = 0 ; i <= sz - md ; i ++){
int mid = (i + md + i) / 2 ;
int before = mid - i , after = md + i - 1 - mid ;
sum = before * v[mid] - prfsum[mid] + prfsum[i] ;
sum += (prfsum[md + i] - prfsum [mid + 1] - after * v[mid]);
mn = min(mn , sum);
sum = 0 ;
//B : continue ;
if(mn <= mx)return true ;
}
return false ;
}/*
5 20 6
1 2 10 12 14
3
*/
int besthub(int R, int L, int X[], long long B)
{ mx = B ;l = L , sz = R ;
// vector<int>v;
for(int i = 0 ; i < R ; i ++)
v.push_back(X[i]) , prfsum[i + 1] = prfsum[i] + X[i];
int l = 0 , r = R , md ;
while(l < r){
md = (l + r + 1) / 2 ;
if(ok(md))l = md ;
else r = md - 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... |