제출 #1327462

#제출 시각아이디문제언어결과실행 시간메모리
1327462aren_dance쌀 창고 (IOI11_ricehub)C++20
100 / 100
13 ms1904 KiB
#include "ricehub.h"
#include <bits/stdc++.h>
using namespace std;
int besthub(int n, int L, int X[], long long B){  
    vector<int> a(n+1,0);
    vector<long long> pref(n+1,0);
    for(int i=0;i<n;++i){
        a[i+1]=X[i];
        pref[i+1]=pref[i]+a[i+1];
    }
    int ans=0;
    for(int m=1;m<=n;++m){
        int l=0;
        int r=min(m-1,n-m);
        int ansd_1=0;
        int ansd_2=0;
        while(l<=r){
            int mid=(l+r)/2;
            long long sum1=pref[mid+m]-pref[m]-(pref[m-1]-pref[m-mid-1]);
            if(sum1<=B){
                l=mid+1;
                ansd_1=m-mid;
                ansd_2=mid+m;
            }
            else{
                r=mid-1;
            }
        }
        long long sum=pref[ansd_2+1]-pref[m]-(pref[m]-pref[ansd_1-1]);
        if(sum<=B && ansd_2!=n){
            ans=max(ans,ansd_2-ansd_1+2);
        }
        else{
            ans=max(ans,ansd_2-ansd_1+1);
        }
        //cout<<ansd_1<<" "<<ansd_2<<' '<<pref[ansd_2+1]-pref[m]<<'\n'; 
    }
    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...