Submission #1260403

#TimeUsernameProblemLanguageResultExecution timeMemory
1260403tormentRice Hub (IOI11_ricehub)C++20
100 / 100
8 ms1864 KiB
#include "ricehub.h"
#include <iostream>
#include <vector>
using namespace std;
int besthub(int n, int L, int x[], long long b){
    vector<int>X(n + 1);
    vector<long long>pref(n + 1);
    for(int i = 0;i < n;++i){
        X[i + 1] = x[i];
        pref[i + 1] = pref[i] + x[i];
    }
    int l = 1, r = n, ans = 1;
    while(l <= r){
        int mid = (l + r) / 2;
        long long mn = 1e18;
        for(int i = 1;i + mid - 1 <= n;++i){
            int j = i + mid - 1;
            int m = (i + j) / 2;
            long long cost = (m - i + 1ll) * X[m] - (pref[m] - pref[i - 1]) + (pref[j] - pref[m]) - (j - m) * 1ll * X[m];
            mn = min(mn, cost);
        }
        if(mn <= b){
            l = mid + 1;
            ans = mid;
        }
        else{
            r = mid - 1;
        }
    }
    return ans;
}
// int main(){
//     ios_base::sync_with_stdio(0);
//     cin.tie(0);
//     int n, L;
//     long long b;
//     cin >> n >> L >> b;
//     int x[n];
//     for(int i = 0;i < n;++i){
//         cin >> x[i];
//     }
//     cout << besthub(n, L, x, b) << '\n';
// }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...