제출 #898776

#제출 시각아이디문제언어결과실행 시간메모리
898776Samot19쌀 창고 (IOI11_ricehub)C++14
100 / 100
11 ms2664 KiB
#include <iostream>
#include <cmath>

typedef long long ll;

using namespace std;

bool solve(ll m, ll r, int x[], ll b) {

    ll xd = 0;

    for(int i=0; i<m; i++) {
        xd+=abs(x[m/2]-x[i]);
    }

    //cout << "inicio" << m << " " << xd << endl;

    if(xd <= b) {
        return true;
    }

    for(ll i = 1; i <= r-m; i++) {
        xd-=(x[m/2+i-1]-x[i-1]);
        xd+=(x[m-1+i]-x[m/2+i]);
        xd+=(x[m/2+i]-x[m/2+i-1])*((m+1)%2);

        //cout << m << " " << xd << endl;

        if(xd <= b) return true;
    }

    return false;
}

ll besthub(int r, int l, int x[], long long b) {

    ll u = 0;
    ll m;
    ll v = r;

    while(u < v) {
        m = ceil((u+v)/2.0);

        if(solve(m, r, x, b)) {
            u = m;
        }
        else {
            v = m-1;
        }
    }


    return u;

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...