Submission #996405

#TimeUsernameProblemLanguageResultExecution timeMemory
996405phoenixRice Hub (IOI11_ricehub)C++17
100 / 100
19 ms4220 KiB
#include<bits/stdc++.h>

using namespace std;


int besthub(int R, int L, int X[], long long B) {
    long long pref[ R ];
    for(int i = 0;i < R;i++) {
        pref[ i ] = X[ i ];
        if(i) pref[ i ] += pref[i - 1];
    }
    auto sum = [&](int l, int r) {
        if(l > r) return 0ll;
        return pref[r] - (l ? pref[l-1] : 0);
    };
    auto func = [&](int l, int r) {
        int m = (l + r) / 2;
        return sum(m + 1, r) - sum(l, m - 1) - X[m] * ((r - l) % 2);
    };
    int res = 0;
    for(int i = 0;i < R;i++) {
        int l = -1, r = i;
        while(r - l > 1) {
            int m = (l + r) / 2;
            if(func(m, i) <= B) r = m;
            else l = m;
        }
        res = max(res, i - l);
    }
    return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...