Submission #77788

#TimeUsernameProblemLanguageResultExecution timeMemory
77788muradeynRice Hub (IOI11_ricehub)C++14
17 / 100
20 ms3500 KiB
#include "ricehub.h"
#include <bits/stdc++.h>
#define SIZE 100001

using namespace std;

int besthub(int r, int l, int x[], long long b)
{
    long long pre[r + 1];
    pre[0] = 0;
    for (int i = 1;i<=r;i++)pre[i] = pre[i - 1] + x[i - 1];
    int ret = 0;
    int le = 0,ri = r - 1;
    while (le <= ri) {
        bool f = false;
        int mid = (le + ri) >> 1;
        for (int i = 0;i<r;i++) {
            if (i + mid > r)continue;
            long long cost = 0;
            int st = i , en = i + mid - 1 , med = (st + en) / 2;
            cost += (med - st) * x[med];
            cost -= pre[med] - pre[st];
            cost += pre[en + 1] - pre[med + 1];
            cost -= (en - med) * x[med];
            if (cost <= b) {
                ret = max(ret,mid);
                f = true;
            }
        }
        if (f) le = mid + 1;
        else ri = mid - 1;
    }
    return ret;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...