Submission #229542

#TimeUsernameProblemLanguageResultExecution timeMemory
229542thtsshz_bgwrswhRice Hub (IOI11_ricehub)C++17
100 / 100
24 ms2560 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...