Submission #884215

#TimeUsernameProblemLanguageResultExecution timeMemory
884215TahirAliyev쌀 창고 (IOI11_ricehub)C++17
100 / 100
10 ms3676 KiB
#include "ricehub.h"
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define pii pair<ll, ll>
#define oo 1e18
#define all(v) v.begin(), v.end()

const int MAX = 1e5 + 5;
int n;
ll arr[MAX];
ll pre[MAX];

signed besthub(int R, int L, int X[], long long B)
{
    n = R;
    for(int i = 1; i <= n; i++){
        arr[i] = X[i - 1];
        pre[i] = pre[i - 1] + arr[i];
    }
    ll l = 1, r = n;
    ll ans = 1;
    while(l <= r){
        ll len = (l + r) / 2;
        ll cost = oo;
        for(int s = 1; s <= n - len + 1; s++){
            ll f = s + len - 1;
            ll med = (s + f) / 2;
            cost = min(cost, (arr[med] * (med - s + 1)) - (pre[med] - pre[s - 1]) 
                            - (arr[med] * (f - med)) + (pre[f] - pre[med]));
        }
        if(cost <= B){
            ans = len;
            l = len + 1;
        }
        else{
            r = len - 1;
        }
    }
    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...