Pagini recente » Cod sursa (job #2358128) | Cod sursa (job #2940888) | Cod sursa (job #2371153) | Cod sursa (job #3204613) | Cod sursa (job #1325363)
#include <fstream>
#include <queue>
#include <iostream>
#define fin "heapuri.in"
#define fou "heapuri.out"
using namespace std;
int sir[200001];
struct coada
{
int val,pozi;
bool operator < (const coada &t) const
{
return t.val < val;
}
};
priority_queue <coada> c;
int main()
{
ifstream t1(fin);
ofstream t2(fou);
int i,j,poz,n,var,nr;
coada num;
t1>>n; poz=0;
for(i=1;i<=n;i++)
{
t1>>var;
if(var==1) { t1>>nr; poz++; sir[poz]=nr; num.val=nr; num.pozi=poz; c.push(num); }
if(var==2) { t1>>nr; sir[nr]=0; }
if(var==3) { num=c.top(); while(sir[num.pozi]==0) { c.pop(); num=c.top(); } t2<<num.val<<'\n'; }
//for(j=1;j<=poz;j++) cout<<sir[j]<<' '; cout<<'\n';
}
t1.close();
t2.close();
return 0;
}