Pagini recente » Cod sursa (job #1918213) | Cod sursa (job #1704669) | Cod sursa (job #1941911) | Cod sursa (job #1433635) | Cod sursa (job #1117169)
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
#define NMax 200001
ifstream f("heapuri.in");
ofstream g("heapuri.out");
struct d_int{int x,val;};
class Compare {
public:
bool operator()(d_int& t1, d_int& t2)
{
if (t1.val > t2.val) return true;
return false;
}
};
priority_queue<d_int, vector<d_int>, Compare> heap;
int cut[NMax];
int main()
{
int i,n,op,nr,k=0;
d_int u;
f>>n;
for(i=1;i<=n;i++)
{
f>>op;
if(op==1) {k++; f>>nr; u.x=k; u.val=nr; heap.push(u);}
if(op==2) {f>>nr; cut[nr]=1;}
if(op==3) {while(cut[heap.top().x]) heap.pop(); g<<heap.top().val<<"\n";}
}
f.close();
g.close();
return 0;
}