Submission #1258971

#TimeUsernameProblemLanguageResultExecution timeMemory
1258971kawhietRice 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 it1 = s.upper_bound(a[i]);
            auto it2 = it1;
            if (it1 == s.end()) {
                it1--;
                cur += abs(a[i] - *it1);
                s.erase(it1);
            }
            else if (it1 == s.begin()) {
                cur += abs(a[i] - *it1);
                s.erase(it1);
            }
            else {
                it1--;
                if (abs(a[i] - *it1) < abs(a[i] - *it2)) {
                    assert(!s.empty());
                    s.erase(it1);
                    cur += abs(a[i] - *it1);
                }
                else {
                    assert(!s.empty());
                    s.erase(it2);
                    cur += abs(a[i] - *it2);
                }
            }
        }
        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...