Submission #1239752

#TimeUsernameProblemLanguageResultExecution timeMemory
1239752lioowRice Hub (IOI11_ricehub)C++20
100 / 100
11 ms1352 KiB
#include "ricehub.h"
#include <bits/stdc++.h>
#define ll long long
using namespace std;

int besthub(int R, int L, int x[], long long B)
{
	long long pref[R+2];
	pref[0]=0;
	for(int i=1;i<=R;i++) pref[i]=pref[i-1]+x[i-1];
	ll ans=0;
	for(int i=1;i<=R;i++){
		ll l=i,r=R,an=-1;
		while(l<=r){
			ll mid=(l+r)/2;
			ll med=(i+mid)/2;
			if(pref[mid]-pref[med]-(mid-med)*x[med-1]+(med-i)*x[med-1]-(pref[med-1]-pref[i-1])<=B){
				an=mid;
				l=mid+1;
			} else {
				r=mid-1;
			}
		}
		if(ans!=-1) ans=max(ans,an-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...