Pagini recente » Cod sursa (job #2301156) | Cod sursa (job #1882881)
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("heapuri.in");
ofstream fout("heapuri.out");
struct cmp
{
bool operator()(const pair<int,int> &a,const pair<int,int> &b)
{
return a.first>b.first;
}
};
priority_queue<pair<int,int> ,vector<pair<int,int> >,cmp> Q;
bool uz[200001];
int main()
{
int m,a,b,i,nr=0;
fin>>m;
for(i=1;i<=m;i++)
{
fin>>a;
if(a==1)
{
fin>>b;
nr++;
Q.push(make_pair(b,nr));
}
else if(a==2)
{
fin>>b;
uz[b]=1;
}
else
{
while(uz[Q.top().second]!=0) Q.pop();
fout<<Q.top().first<<"\n";
}
}
}