제출 #1328232

#제출 시각아이디문제언어결과실행 시간메모리
1328232tsetsenbileg휴가 (IOI14_holiday)C++20
47 / 100
5093 ms1432 KiB
#include"holiday.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
using ll = long long;
using pr = pair<int, int>;
const int INF = 1e9+7, MOD = 1e9+7;
priority_queue<int, vector<int>, greater<int>> cur;
ll sum = 0, res = 0;
int s, l, r, d;

void insert(int x) {
    cur.push(x);
    sum += x;
    int rest = d - min(abs(s - l), abs(s - r)) - abs(r - l);
    if (rest <= 0) {
        sum = 0;
        return;
    }
    while (cur.size() > rest) {
        sum -= cur.top();
        cur.pop();
    }
    // cout << x << ' ' << sum << '\n';
    res = max(res, sum);
}

long long findMaxAttraction(int n, int st, int D, int a[]) {
    d = D;
    s = st;
    for (int i = s; i >= 0; i--) {
        l = i;
        r = s;
        sum = 0;
        while (!cur.empty()) cur.pop();
        for (int j = i; j <= s; j++) {
            insert(a[j]);
        }
        for (int j = s+1; j < n; j++) {
            r = j;
            insert(a[j]);
        }
    }   
    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...