Pagini recente » Cod sursa (job #1591209) | Cod sursa (job #42320) | Cod sursa (job #1819655) | Cod sursa (job #70289) | Cod sursa (job #1789299)
#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(int &a, int&b){
return (a>b);
}
int main()
{
bool sters[200001]={0};
int o[200001]={0};
vector <int> v;
int i, j, n, cr, nr, lg=0, pos;
freopen ("heapuri.in", "r", stdin);
freopen ("heapuri.out", "w", stdout);
scanf("%d ", &n);
for(i=1;i<=n;i++){
scanf("%d", &cr);
if(cr==1){
scanf("%d", &nr);
o[++lg]=nr;
v.push_back(nr);
push_heap(v.begin(), v.end(), cmp);
}
if(cr==2){
scanf("%d", &nr);
sters[nr]=true;
}
if(cr==3){
for(i=1;i<=lg;i++)
if(v.front()==o[i]){
pos=i;
break;
}
while(sters[pos]){
pop_heap(v.begin(),v.end(),cmp);
v.pop_back();
for(i=1;i<=n;i++)
if(v.front()==o[i]){
pos=i;
break;
}
}
printf("%d\n", v.front());
}
}
}