제출 #343310

#제출 시각아이디문제언어결과실행 시간메모리
343310Aldas25쌀 창고 (IOI11_ricehub)C++14
42 / 100
1089 ms492 KiB
#include "ricehub.h"
#include <bits/stdc++.h>

using namespace std;

#define FOR(i, a, b) for (int i = (a); i <= (b); i++)
#define REP(n) FOR(O, 1, (n))
#define f first
#define s second
#define pb push_back
typedef long long ll;

const int MAXN = 100100;

int r, l;
int x[MAXN];
ll b;

bool check (int fr, int to) {
    FOR(i, fr, to) {
        ll cnt = 0;
        FOR(j, fr, to)
            cnt += abs(x[j] - x[i]);
        if (cnt <= b) return true;
    }
    return false;
}

int calc (int i) {
    int le = i, ri = r-1;
    while (le < ri) {
        int mid = (le + ri + 1)/2;
        if (check (i, mid)) le = mid;
        else ri = mid-1;
    }

    return (le-i+1);
}

int besthub(int R, int L, int X[], long long B)
{
    r = R;
    l = L;
    FOR(i, 0, r-1) x[i] = X[i];
    b = B;

    int ans = 1;
    FOR(i, 0, r-1) ans = max(ans, calc(i));
    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...