Submission #875478

#TimeUsernameProblemLanguageResultExecution timeMemory
875478StefanSebezRice Hub (IOI11_ricehub)C++14
100 / 100
13 ms5072 KiB
#include "ricehub.h"
#include<bits/stdc++.h>
#define ll long long
int besthub(int n, int L, int X[], long long B)
{
	ll a[n+1];
	for(int i=1;i<=n;i++) a[i]=X[i-1];
	ll pref[n+1]={0};
	for(int i=1;i<=n;i++) pref[i]=pref[i-1]+a[i];
	int l=1,r=n,res=1;
	while(l<=r)
	{
		int mid=(l+r)/2;
		bool bul=false;
		for(int i=1;i+mid-1<=n;i++)
		{
			int j=(i+i+mid-1)/2;
			ll x=a[j]*(j-i)-(pref[j-1]-pref[i-1])+pref[i+mid-1]-pref[j]-a[j]*(i+mid-1-j);
			if(x<=B) bul=true;
			j++;
			x=a[j]*(j-i)-(pref[j-1]-pref[i-1])+pref[i+mid-1]-pref[j]-a[j]*(i+mid-1-j);
			if(x<=B) bul=true;

		}
		if(bul)
		{
			res=mid;
			l=mid+1;
		}
		else r=mid-1;
	}
	return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...