제출 #809098

#제출 시각아이디문제언어결과실행 시간메모리
809098annabeth9680쌀 창고 (IOI11_ricehub)C++17
100 / 100
13 ms2516 KiB
#include <bits/stdc++.h>
#define ll long long
using namespace std;
vector<ll> arr;
bool check(int val, int n, ll B){
    for(int i = 1;i<=n-val+1;++i){
        int r = i+val-1;
        int m = (i+r)/2;
        ll geld;
        if(val%2 == 0){
            geld = (arr[r]-arr[m])-(arr[m]-arr[i-1]);
        }
        else{
            geld = (arr[r]-arr[m])-(arr[m-1]-arr[i-1]);
        }
        if(geld <= B){
            //cout << val << " " << geld << " " << i << "\n";
            return true;
        }
    }
    return false;
}
int besthub(int R, int L, int X[], ll B){
    arr.resize(R+1); arr[0] = 0;
    for(int i = 1;i<=R;++i){
        arr[i] = arr[i-1]+X[i-1];
    }
    int l = 0, r = R;
    while(l < r){
        //cout << l << " " << r << "\n";
        int mid = (l+r+1)/2;
        if(check(mid,R,B)){
            l = mid;
        }
        else{
            r = mid-1;
        }
    }
    return l;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...