Submission #1236205

#TimeUsernameProblemLanguageResultExecution timeMemory
1236205ereringRice Hub (IOI11_ricehub)C++20
100 / 100
11 ms1352 KiB
#include <bits/stdc++.h>
#include "ricehub.h"
using namespace std;
#define ll long long
int besthub(int R, int L, int X[], long long B)
{
    //1 2 5 6
    ll pref[R];
    int ans=0;
    for(int i=0;i<R;i++){
        pref[i]=X[i];
        if(i>0)pref[i]+=pref[i-1];
        int l=0,r=i;
        while(l<r){
            int mid=(l+r)/2;
            int mid2=(mid+i)/2;
            ll sum=(pref[i]-(mid2>0?pref[mid2-1]:0LL))-(1LL*X[mid2]*(i-mid2+1));
            sum+=(1LL*X[mid2]*(mid2-mid+1))-(pref[mid2]-(mid>0?pref[mid-1]:0LL));
            if(sum<=B)r=mid;
            else l=mid+1;
        }
        ans=max(ans,i-l+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...