Submission #543190

#TimeUsernameProblemLanguageResultExecution timeMemory
543190ogibogi2004Rice Hub (IOI11_ricehub)C++14
100 / 100
15 ms2516 KiB



#include "ricehub.h"
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll MAXN=1e5+6;
ll cc,le,re;
ll x[MAXN];
void add()
{
    re++;
    cc+=x[re]-x[le+(re-le)/2];
    /*if((re-le)%2==0&&!(re==0&&le==0))
    {
        cc-=x[le+(re-le)/2]-x[le+(re-le)/2-1];
    }*/
}
void rmv()
{
    cc-=x[le+(re-le)/2]-x[le];
    le++;
    if((re-le)%2==0)
    {
        cc-=x[le+(re-le)/2]-x[le+(re-le)/2-1];
    }
}
int besthub(int R, int L, int X[], long long B)
{
    for(int i=0;i<R;i++)x[i]=X[i];
    cc=0;
    le=0,re=-1;
    ll ans=0;
    for(le=0;le<R;)
    {
        while(re+1<R&&cc<=B)
        {
            add();
            //cout<<le<<" "<<re<<" "<<cc<<endl;
        }
        if(cc<=B)ans=max(ans,re-le+1);
        else ans=max(ans,re-le);
        rmv();
        //cout<<le<<" "<<re<<" "<<cc<<endl;
    }
    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...