Submission #1310374

#TimeUsernameProblemLanguageResultExecution timeMemory
1310374orgiloogiiRice Hub (IOI11_ricehub)C++20
68 / 100
8 ms1348 KiB
#include "ricehub.h"
#include <bits/stdc++.h>
using namespace std;
int besthub(int n, int m, int x[], long long b) {
    vector<long long> pref(n + 1);
    for (int i = 0; i < n; i++) {
        pref[i + 1] = pref[i] + x[i];
    }
    int res = 0;
    int l = 1;
    for (int r = 1;r <= n;r++) {
        while (l <= r) {
            int mid = (l + r) / 2;

            //cout << pref[mid - 1] - pref[l - 1] << " "  << pref[r] - pref[mid] << " " <<
             //   x[mid - 1] * (mid - l) - (pref[mid - 1] - pref[l - 1]) << " " << (pref[r] - pref[mid]) - x[mid - 1] * (r - mid) << endl;

            if (x[mid - 1] * (mid - l) - (pref[mid - 1] - pref[l - 1]) + (pref[r] - pref[mid]) - x[mid - 1] * (r - mid) <= b) {
                break;
            }
            l++;
        }
        res = max(res, r - l + 1);
        //pref[r] - pref[mid];
    }
    return res;
}

/*int main() {
    int n = 5;
    int a[n] = {1, 2, 10, 12, 14};
    cout << besthub(n, 20, a, 6);
}*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...