Cod sursa(job #1839398)

Utilizator sebi110Ciobanu Sebastian sebi110 Data 2 ianuarie 2017 21:03:58
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>
#include <map>
#include <queue>
using namespace std;
ifstream fin("heapuri.in");
ofstream fout("heapuri.out");
int mom[200001],vf,ult;
map <int, int> bl;
map <int, int >::iterator it;
priority_queue<int> v;
int main()
{
    int n,i,op,x;
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>op;
        if(op==1)
        {
            fin>>x;
            v.push(-x);
            mom[++vf]=x;
        }
        else
        {
            if(op==2)
            {
                fin>>x;
                bl[mom[x]]=1;
            }
            else
            {
                it=bl.find(-v.top());
                while(it!=bl.end())
                {
                    bl.erase(it);
                    v.pop();
                    it=bl.find(-v.top());
                }
                fout<<-v.top()<<'\n';
            }
        }
    }
    return 0;
}