Cod sursa(job #1584895)

Utilizator trutruvasilicaHuhurez Marius trutruvasilica Data 30 ianuarie 2016 16:31:45
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("heapuri.in");
ofstream fout("heapuri.out");
struct nr
{
    int val,poz;
}pas;
struct cmp
{
    bool operator ()(const nr &a,const nr &b)
    {
        return a.val>b.val;
    }
};
priority_queue<nr,vector<nr>,cmp> Q;
bool uz[200001];
int main()
{
    int m,i,j,a,x=0;
    fin>>m;
    for(i=1;i<=m;i++)
    {
        fin>>a;
        if(a==1)
        {
            fin>>j;
            x++;
            pas.val=j;pas.poz=x;
            Q.push(pas);
        }
        if(a==2)
        {
            fin>>j;
            uz[j]=1;
        }
        if(a==3)
        {
            while(uz[Q.top().poz]!=0) Q.pop();
            fout<<Q.top().val<<"\n";
        }
    }
}