Cod sursa(job #3123257)

Utilizator radustn92Radu Stancu radustn92 Data 22 aprilie 2023 18:52:35
Problema Heapuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
using namespace std;

int N;
vector<bool> deleted;
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq;

int main() {
    freopen("heapuri.in", "r", stdin);
    freopen("heapuri.out", "w", stdout);

    cin >> N;
    deleted.assign(N, false);
    int query, insertions = 0, elem;
    for (int idx = 0; idx < N; idx++) {
        cin >> query;
        if (query == 1) {
            cin >> elem;
            insertions++;
            pq.push({elem, insertions});
        } else if (query == 2) {
            cin >> elem;
            deleted[elem] = true;
        } else {
            while (deleted[pq.top().second]) {
                pq.pop();
            }
            cout << pq.top().first << "\n";
        }
    }
    return 0;
}