Pagini recente » Cod sursa (job #2757168) | Cod sursa (job #1098180) | Cod sursa (job #688189) | Cod sursa (job #2442540) | Cod sursa (job #1789294)
#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;
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;
}
printf("%d\n", v.front());
}
}
}