Pagini recente » Cod sursa (job #1142649) | Cod sursa (job #1808325) | Cod sursa (job #1090783) | Cod sursa (job #135809) | Cod sursa (job #1024990)
#include<stdio.h>
#include<algorithm>
#include<vector>
#include<queue>
#define NMAX 200007
#define x first
#define y second
using namespace std;
priority_queue < pair<int, int> , vector< pair<int, int> >, greater<pair<int, int> > > q;
int Tip, n, x, Viz[NMAX], v[NMAX];
int main(){
freopen("heapuri.in", "r", stdin);
freopen("heapuri.out", "w", stdout);
scanf("%d", &n);
for(int i = 1; i <= n; ++ i){
scanf("%d", &Tip);
if(Tip == 1){
scanf("%d", &x);
v[++ v[0]] = x;
q.push(make_pair(v[v[0]], v[0]));
}
if(Tip == 2){
scanf("%d", &x);
Viz[x] = 1;
}
if(Tip == 3){
while(Viz[q.top().y])
q.pop();
printf("%d\n", q.top().x);
}
}
return 0;
}