Pagini recente » Cod sursa (job #1713287) | Cod sursa (job #1787915) | Cod sursa (job #997223) | Cod sursa (job #2219367) | Cod sursa (job #3123257)
#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;
}