Submission #1248500

#TimeUsernameProblemLanguageResultExecution timeMemory
1248500AlmontherRice Hub (IOI11_ricehub)C++20
0 / 100
0 ms320 KiB
#include<bits/stdc++.h>

#define ll long long
#define co cout<<

using namespace std;
// stuff

int besthub(int R,int L,int X[],ll B){
    int mx=0;
    ll pref[R+5]={},suff[R+5]={};
    for(int i=1;i<=R;i++) pref[i]=pref[i-1]+X[i-1];
    for(int i=R-1;i>=0;i--) suff[i]=suff[i+1]+X[i];
    for(int i=0;i<R;i++){
        int len_l=0,len_r=R;
        while(len_l<len_r){
            int mid=(len_l+len_r+1)/2;
            int l=i-mid,r=i+mid;
            if(l<0||r>=R){
                len_r=mid-1;
                continue;
            }
            ll sum=X[i]*(i-l+1)-(pref[i+1]-pref[l]);
            sum+=(suff[i]-suff[r+1])-X[i]*(r-mid+1);
            if(sum<=B) len_l=mid;
            else len_r=mid-1;
        }
        mx=max(mx,len_l*2+1);
    }
    return mx;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...