Submission #1199724

#TimeUsernameProblemLanguageResultExecution timeMemory
1199724prikpaoRice Hub (IOI11_ricehub)C++20
100 / 100
8 ms1540 KiB
#include <bits/stdc++.h>
#include "ricehub.h"
using ll = long long;
using namespace std;

ll qs[100005];

int besthub(int n, int m, int x[], ll b){
    for(int i=n; i>=1; i--)x[i]=x[i-1];
    for(int i=1; i<=n; i++)qs[i]=qs[i-1]+x[i];
    ll l=1, r=n, mid, ans;
    while(l<=r){
        mid=(l+r)/2;
        ll minfuckingbudget=1e18;
        for(int i=1; i<=n-mid+1; i++){
            ll median=(i+i+mid-1)/2;
            minfuckingbudget=min(minfuckingbudget, (median-i+1)*x[median]-(qs[median]-qs[i-1])+qs[i+mid-1]-qs[median]-x[median]*(i+mid-1-median));
        }
        if(minfuckingbudget<=b)l=mid+1, ans=mid;
        else r=mid-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...