제출 #1328244

#제출 시각아이디문제언어결과실행 시간메모리
1328244orgiloogii휴가 (IOI14_holiday)C++20
47 / 100
5089 ms2276 KiB
#include "holiday.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long
priority_queue<long long, vector <long long>, greater<long long>> pq;

long long findMaxAttraction(int32_t n, int32_t start, int32_t d, int32_t attraction[]) {    
    long long res = 0;
    for (int l = start;l >= 0;l--) {
        int sum = 0;
        priority_queue<long long, vector<long long>, greater<long long>> temp;
        pq.swap(temp);
        for (int i = l;i <= start;i++) {
            pq.push(attraction[i]);
            sum += attraction[i];
            int req = d - (start - l);
            if (req <= 0) {
                sum = -1;
                break;
            }
            while (pq.size() > req) {
                sum -= pq.top();
                pq.pop();
            }
            res = max(res, sum);
        }
        if (sum == -1) continue;
        for (int r = start + 1;r < n;r++) {
            pq.push(attraction[r]);
            sum += attraction[r];
            int req = d - (r - l + min(start - l, r - start));
            if (req <= 0) break;
            while (pq.size() > req) {
                sum -= pq.top();
                pq.pop();
            }
            res = max(res, sum);
        }
    }
    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...