이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#pragma GCC optimize("Ofast")
#include<stdio.h>
#include<algorithm>
using namespace std;
long long pre[100005]={0};
int besthub(int R,int L,int *X,long long B){
int i,j=-1,ans=0;
pre[0]=X[0];
for(i=1;i<R;i++)
pre[i]=pre[i-1]+X[i];
for(i=0;i<R;i++){
while(j+1<R&&pre[j+1]-pre[(j+1+i)/2]-(long long)X[(j+1+i)/2]*(j+1-(j+1+i)/2)+(long long)X[(j+1+i)/2]*((j+1+i)/2-i+1)-pre[(j+1+i)/2]+(i?pre[i-1]:0)<=B)
j++;
// j--;
//1 1->1 2
// printf("%d %d %lld\n",i,j,pre[j+1]-pre[(j+1+i)/2]-(long long)X[(j+1+i)/2]*(j+1-(j+1+i)/2)+(long long)X[(j+1+i)/2]*((j+1+i)/2-i+1)-pre[(j+1+i)/2]+(i?pre[i-1]:0));
// printf("%lld %lld\n",pre[j+1]-pre[(j+1+i)/2]-(long long)X[(j+1+i)/2]*(j+1-(j+1+i)/2),(long long)X[(j+1+i)/2]*((j+1+i)/2-i+1)-pre[(j+1+i)/2]+(i?pre[i-1]:0));
// j++;
// printf("%d\n",j-i+1);
ans=max(ans,j-i+1);
}
return ans;
}
# | 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... |