Submission #843873

#TimeUsernameProblemLanguageResultExecution timeMemory
843873ZeroCoolRice Hub (IOI11_ricehub)C++14
68 / 100
15 ms4444 KiB
#include "ricehub.h"
#include <bits/stdc++.h>
#define ll long long

const int N = 100005;

using namespace std;

ll pref[N];

int sum(int a,int b){
    return pref[b] - pref[a-1];
}

int32_t besthub(int n, int l, int X[], ll k){
    ll A[n+1];

    for(int i = 1;i<=n;i++){
        A[i] = X[i-1];
        pref[i] = pref[i-1] + A[i];
    }
    ll res = 0;
    for(int i = 1;i<=n;i++){
        ll lo = i;
        ll hi = n;

        while(lo <= hi){
            ll mid = (lo + hi)/2;
            ll x = (i + mid) /2 ;
            ll val = (A[x]*(x-i) - sum(i,x-1)) + (sum(x+1, mid) - A[x] * (mid-x));

            if(val <= k){
                res = max(res, mid - i + 1);
                lo = mid + 1;
            }else{
                hi = mid - 1;
            }
        }
    }

    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...