Pagini recente » Cod sursa (job #2806660) | Cod sursa (job #2325971) | Cod sursa (job #803416) | Cod sursa (job #1128707)
#include <cstdio>
#include <queue>
#include <vector>
#include <algorithm>
#define x first
#define y second
#define NMAX 200007
using namespace std;
priority_queue< pair< int, int>, vector< pair< int, int> >, greater< pair< int, int > > > q;
vector< int > v;
bool Viz[NMAX];
int Q;
int main(){
freopen("heapuri.in", "r", stdin);
freopen("heapuri.out", "w", stdout);
for(scanf("%d", &Q); Q > 0; --Q){
int Tip, X;
scanf("%d", &Tip);
if(Tip == 1){
scanf("%d", &X);
v.push_back(X);
q.push(make_pair(v[v.size() - 1], v.size()));
}
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;
}