제출 #991038

#제출 시각아이디문제언어결과실행 시간메모리
991038stdfloat쌀 창고 (IOI11_ricehub)C++17
100 / 100
19 ms4444 KiB
#include <bits/stdc++.h>
#include "ricehub.h"
using namespace std;

using ll = long long;

int besthub(int n, int L, int X[], ll B) {
    vector<ll> p(n);
    for (int i = 0; i < n; i++)
        p[i] = (i ? p[i - 1] : 0) + X[i];

    int mx = 0;
    for (int i = 0; i < n; i++) {
        int l = i, r = n - 1;
        while (l <= r) {
            int md = (l + r) >> 1;

            bool tr = ((i & 1) != (md & 1));
            int x = (md - i) >> 1, y = (tr ? (X[i + x] + X[i + x + 1]) >> 1 : X[i + x]);
            if ((ll)(x + 1) * y - p[i + x] + (i ? p[i - 1] : 0) + p[md] - p[i + x] - (ll)(x + tr) * y <= B) l = md + 1;
            else r = md - 1;
        }

        mx = max(mx, l - i);
    }

    return mx;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...