#include "ricehub.h"
#include<bits/stdc++.h>
#define ll long long
int besthub(int R, int L, int X[], long long B)
{
int l=0,r=0,best=1,currB=B;
int center=0;
while(r<R-1){
r+=1;
currB-=X[r]-X[center];
while(X[center]==X[center+1])center++;
ll movecostre = (ll)(((r)-(center))-((center)-(l)+1))*(ll)(X[center+1]-X[center]);
while(movecostre>0&¢er!=r){
center+=1;
currB+=movecostre;
movecostre = (ll)(((r)-(center))-((center)-(l)+1))*(ll)(X[center+1]-X[center]);
}
while(currB<0){
if(center>l){
currB+=X[center]-X[l];
}
else{
center+=1;
movecostre = (ll)(((r)-(center)+1))*(ll)(X[center]-X[l]);
currB+=movecostre;
}
l+=1;
}
while(X[center]==X[center+1])center++;
movecostre = (ll)(((r)-(center))-((center)-(l)+1))*(ll)(X[center+1]-X[center]);
while(movecostre>0&¢er!=r){
center+=1;
currB+=movecostre;
movecostre = (ll)(((r)-(center))-((center)-(l)+1))*(ll)(X[center+1]-X[center]);
}
best=std::max(r-l+1,best);
//std::cout << currB << ' ' << l << ' ' << center << ' ' << r << '\n';
}
return best;
}
| # | 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... |