Submission #352521

#TimeUsernameProblemLanguageResultExecution timeMemory
352521nicholaskRice Hub (IOI11_ricehub)C++14
100 / 100
20 ms2304 KiB
#include <bits/stdc++.h>
#include "ricehub.h"
using namespace std;
long long a[100010],ps[100010];
long long cost(long long l,long long r){
	long long mid=(l+r)>>1;
	long long ls=a[mid]*(mid-l)-ps[mid-1]+ps[l-1];
	long long rs=ps[r]-ps[mid]-a[mid]*(r-mid);
	return ls+rs;
}
int besthub(int R, int L, int X[], long long B){
	for (int i=0; i<R; i++) a[i+1]=X[i];
	for (int i=1; i<=R; i++) ps[i]=ps[i-1]+a[i];
	long long ans=0,cur=0;
	for (int i=1; i<R; i++){
		while (cur<R&&B>=cost(i,cur+1)) cur++;
		ans=max(ans,cur-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...