Pagini recente » Cod sursa (job #252530) | Cod sursa (job #2732472) | Cod sursa (job #290649) | Cod sursa (job #2249665) | Cod sursa (job #1637270)
#include <queue>
#include <iostream>
#include <cstdio>
#include <bitset>
using namespace std;
int n;
bitset<200005> is;
struct cd
{
int poz,nr;
bool operator < (const cd &c) const
{
return c.nr<nr;
}
};
priority_queue<cd> q;
int main()
{
int i=1,tip,x,pozi=0;
cd a,b;
freopen("heapuri.in","r",stdin);
freopen("heapuri.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&tip);
if(tip==3) { while(!is[ q.top().poz ]) q.pop(); printf("%d\n",q.top().nr); }
else
{
scanf("%d",&x);
if(tip==2) is[x]=0;
if(tip==1) { pozi++; a.poz=pozi; a.nr=x; q.push(a); is[pozi]=1; }
}
}
fclose(stdin);
fclose(stdout);
return 0;
}