Submission #1199709

#TimeUsernameProblemLanguageResultExecution timeMemory
1199709prikpaoRice Hub (IOI11_ricehub)C++20
17 / 100
1 ms328 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=0, r=n-1, 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(mid%2==0){
                median++;
                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...