Pagini recente » Cod sursa (job #2948157) | Cod sursa (job #2808700) | Cod sursa (job #1993204) | Cod sursa (job #29815) | Cod sursa (job #913737)
Cod sursa(job #913737)
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;
struct element{
int val;
int poz;
element(int v, int p){
val = v;
poz = p;
}
};
struct cmp{
bool operator()(element &a, element &b)const{
return a.val > b.val;
}
};
char viz[20010];
priority_queue <element, vector<element>, cmp> q;
int n;
void citire(){
scanf("%d", &n);
for(int i = 1; n --;){
int caz;
scanf("%d", &caz);
if(caz == 3){
while(viz[q.top().poz]){
q.pop();
}
printf("%d\n", q.top());
continue;
}
int x;
scanf("%d", &x);
if(caz == 1){
q.push(element(x, i ++));
}else{
viz[x] = 1;
}
}
}
int main()
{
freopen("heapuri.in", "r", stdin);
freopen("heapuri.in", "w", stdout);
citire();
return 0;
}