Pagini recente » Cod sursa (job #2522968) | Cod sursa (job #1310982) | Cod sursa (job #1835733) | Cod sursa (job #2223296) | Cod sursa (job #407532)
Cod sursa(job #407532)
#include<algorithm>
#include<queue>
#include<bitset>
using namespace std;
#define fs first
#define sc second
#define pb push_back
#define mp make_pair
bitset <100000> viz;
struct cmp
{
bool operator () ( const pair<int,int> &a , const pair<int,int> &b) const
{
return a>b;
}
};
priority_queue <pair< int ,int>, vector < pair < int,int > > , cmp > q ;
void read()
{
int x,n,c=0,t;
scanf("%d",&n);
for(int i=1; i<=n;i++)
{
scanf("%d",&t);
if( t==1)
{
scanf("%d",&x);
q.push (mp ( x,c++ ));
}
else
if(t==2)
{
scanf("%d",&x);
viz[ x ] =1;
}
else
{
while( viz [ q.top().fs ] ==1 )
q.pop();
printf("%d\n",q.top().fs);
q.pop();
}
}
}
int main ()
{
freopen("heapuri.in","r",stdin);
freopen("heapuri.out","w",stdout);
read();
return 0;
}