제출 #1363815

#제출 시각아이디문제언어결과실행 시간메모리
1363815tschav_Rice Hub (IOI11_ricehub)C++20
100 / 100
6 ms1508 KiB
#include <bits/stdc++.h>
// #define int long long
#define dbg(x) cerr << #x << " -> " << x << "\n"
#define pb push_back
#define all(x) (x).begin(),(x).end()
#define len(x) (int)(x).size()
#define pii pair<int,int>
#define ll long long
using namespace std;

int besthub(int R, int L, int X[], ll B) {
    vector<ll> pref(R+1,0);
    for(int i = 0; i < R; ++i) pref[i+1] = pref[i] + X[i];

    function<bool(int)> pos = [&](int mid) -> bool{
        for(int l = 0; l + mid < R + 1; ++l){
            int r = l + mid - 1;
    
            int m = (l + r) / 2;
            ll med = X[m];

            ll A  = med * (m-l) - pref[m] + pref[l];
            ll C = pref[r+1] - pref[m+1] - med*(r-m);

            if(A + C <= B) return true;
        }
        return false;
    };
    int lo = 1, hi = R, ans = 1;
    while(lo <= hi) {
        int mid = (lo + hi) / 2;
        if(pos(mid)){
            ans = mid;
            lo = mid + 1;
        }
        else hi = mid - 1;
    }
    return ans;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…