Pagini recente » Cod sursa (job #196683) | Cod sursa (job #1779232) | Cod sursa (job #2848027) | Cod sursa (job #2657991) | Cod sursa (job #1149812)
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
using namespace std;
int del[200000], n, op, nr;
struct elem
{
int val, cron;
elem(int vall=0, int cronn=0) {val=vall; cron=cronn;}
};
struct cmp
{
bool operator()(elem x, elem y){
return x.val > y.val;
}
};
priority_queue<elem, vector<elem>, cmp> q;
int main()
{
freopen("heapuri.in", "r", stdin);
freopen("heapuri.out", "w", stdout);
int t, nq=1;
scanf("%d\n", &n);
for(int i=0; i<n; i++){
scanf("%d\n", &op);
if(op == 1){
scanf("%d\n", &t);
q.push(elem(t, nq++));
}
else if(op == 2){
scanf("%d\n", &t);
del[t] = 1;
}
else if(op ==3){
while(del[q.top().cron] == 1)
q.pop();
printf("%d\n", q.top().val);
}
}
return 0;
}