Submission #1264247

#TimeUsernameProblemLanguageResultExecution timeMemory
1264247NHristovCandies (JOI18_candies)C++20
8 / 100
1 ms728 KiB
#include <bits/stdc++.h>
#define ll long long
#define endl '\n'
using namespace std;

const int N=2e3+5;
const ll INF=1e18;
int n;
ll a[N], l[N], r[N], vis[N];
priority_queue<pair<ll, int>> pq;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);

    cin >> n;
    for(int i=1; i<=n; i++) {
        cin >> a[i];
        pq.push({a[i], i});
        l[i]=i-1, r[i]=i+1;
    }
    l[0]=0, r[n+1]=n+1;
    a[0]=-INF, a[n+1]=-INF;
    ll ans=0;
    for(int i=1; i<=(n+1)/2; i++) {
        while(vis[pq.top().second])
            pq.pop();
        auto [val, id]=pq.top();
        pq.pop();
        ans+=val;
        a[id]=a[l[id]]+a[r[id]]-a[id];
        vis[l[id]]=vis[r[id]]=1;
        r[id]=r[r[id]];
        l[id]=l[l[id]];
        l[r[id]]=r[l[id]]=id;
        pq.push({a[id], id});
        cout << ans << endl;
    }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...