Submission #1258973

#TimeUsernameProblemLanguageResultExecution timeMemory
1258973kawhietRice Hub (IOI11_ricehub)C++20
17 / 100
1 ms328 KiB
#include "ricehub.h"
#include <bits/stdc++.h>
using namespace std;

int besthub(int n, int m, int arr[], long long k) {
    vector<int> a(n);
    for (int i = 0; i < n; i++) {
        a[i] = arr[i];
    }
    int res = 0;
    for (int i = 0; i < n; i++) {
        multiset<int> s{a.begin(), a.end()};
        s.erase(s.find(a[i]));
        long long cur = 0;
        int cnt = 0;
        while (cur <= k) {
            cnt++;
            auto it = s.upper_bound(a[i]);
            if (it == s.end()) {
                --it;
                cur += abs(a[i] - *it);
                s.erase(it);
            }
            else if (it == s.begin()) {
                cur += abs(a[i] - *it);
                s.erase(it);
            }
            else {
                auto itr = it; --itr;
                if (abs(a[i] - *itr) < abs(a[i] - *it)) {
                    cur += abs(a[i] - *itr);
                    s.erase(itr);
                }
                else {
                    cur += abs(a[i] - *it);
                    s.erase(it);
                }
            }
        }
        res = max(res, cnt);
    }
    return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...