Submission #1338553

#TimeUsernameProblemLanguageResultExecution timeMemory
1338553Braabebo10Holiday (IOI14_holiday)C++20
30 / 100
97 ms1940 KiB
#include<bits/stdc++.h>
#define ll long long
#define nl "\n"
#define all(v) v.begin(),v.end()
#define baraa ios_base::sync_with_stdio(false);cin.tie(NULL);
using namespace std;

priority_queue<ll, vector<ll>, greater<ll> > q;

ll findMaxAttraction(int n, int start, int d, int attraction[]) {
    ll res = 0, res2 = 0;
    vector<ll>v;
    for (int l = start; l >= 0; l--) {
        ll sum = 0;
        priority_queue<ll, vector<ll>, greater<ll> > temp;
        swap(q, temp);
        for (int i = l; i <= start; i++) {
            q.push(attraction[i]);
            sum += attraction[i];
            int req = d - (start - l);
            if (req <= 0) {
                sum = -1;
                break;
            }
            while (q.size() > req) {
                sum -= q.top();
                q.pop();
            }
            res = max(res, sum);
        }
        if (sum == -1) continue;
        ll res3 = 0;
        for (int r = start + 1; r < n; r++) {
            q.push(attraction[r]);
            sum += attraction[r];
            int req = d - (r - l + min(start - l, r - start));
            if (req <= 0) {
                break;
            }
            while (q.size() > req) {
                sum -= q.top();
                q.pop();
            }
            res = max(res, sum);
            res3 = max(res3, sum);
        }
        v.push_back(res3);
    }
    ll cnt = 0;
    for (ll i = 1; i + 1 < v.size(); i++)cnt += (v[i] > v[i - 1] and v[i] > v[i + 1]);
    assert(cnt <= 1);
    return res;
}

// int main() {
//     int n, start, d;
//     cin >> n >> start >> d;
//     int arr[n];
//     for (ll i = 0; i < n; i++)cin >> arr[i];
//     cout << findMaxAttraction(n, start, d, arr);
//     return 0;
// }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...