Cod sursa(job #723499)

Utilizator algotrollNume Fals algotroll Data 25 martie 2012 15:25:06
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<fstream>
#include<set>
#include<queue>
#define _NM 200010
using namespace std;

int A[_NM];
struct greater_A
{
    bool operator()(int i, int j)
        {return A[i]>A[j];}
};

int main()
{
    ifstream fin("heapuri.in");
    ofstream fout("heapuri.out");
    priority_queue<int,vector<int>,greater_A> pq;
    set<int> del;
    int nOp; fin>>nOp;
    for (int i=1;i<=nOp;i++)
    {
        int op; fin>>op;
        switch(op)
        {
        case 1:
            static int j=0;
            fin>>A[++j];
            pq.push(j);
            break;
        case 2:
            int poz; fin>>poz;
            del.insert(poz);
            break;
        case 3:
            while (del.count(pq.top())!=0) pq.pop();
            fout<<A[pq.top()]<<'\n';
        }
    }
    return 0;
}