Submission #1153657

#TimeUsernameProblemLanguageResultExecution timeMemory
1153657BlockOGHoliday (IOI14_holiday)C++20
47 / 100
5091 ms1604 KiB
#include "holiday.h"
#include <iostream>
#include <queue>

// meow mrrow nya nya :3c
// play vivid/stasis. free on steam

using namespace std;

long long findMaxAttraction(int n, int start, int d, int attraction[]) {
    long long res = 0;

    long long sum2 = 0;
    priority_queue<int, vector<int>, greater<int>> q2;
    for (int j = 0; j <= start && d > 0; j++, d--) {
        sum2 += attraction[start - j];
        q2.push(attraction[start - j]);

        while (q2.size() > d) {
            sum2 -= q2.top();
            q2.pop();
        }

        res = max(res, sum2);

        priority_queue<int, vector<int>, greater<int>> q(q2);
        long long sum = sum2;
        for (int i = start + 1, cd = d - 1 - (j >= 1); i < n && cd > 0; i++, cd--) {
            sum += attraction[i];
            q.push(attraction[i]);

            while (q.size() > cd) {
                sum -= q.top();
                q.pop();
            }

            res = max(res, sum);
            if (i - start < j) cd--;
        }
    }

    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...