Cod sursa(job #1117197)

Utilizator crisbodnarCristian Bodnar crisbodnar Data 23 februarie 2014 11:37:29
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
//Implementare cu coada de prioritate

#include <iostream>
#include <fstream>
#include <algorithm>
#include <queue>

using namespace std;

ifstream fin("heapuri.in");
ofstream fout("heapuri.out");

const int NMAX = 2e5 + 100;

int top, N, O[NMAX];
priority_queue <int, vector<int>, greater<int> > Heap;
priority_queue <int, vector<int>, greater<int> > Pop;

int main()
{
    fin >> N;
    while(N--)
    {
        int tip, a;
        fin >> tip;
        if(tip == 1)
        {
            fin >> a;
            O[++top] = a;
            Heap.push(a);
        }
        else if(tip == 2)
        {
            fin >> a;
            Pop.push(O[a]);
        }
        else
        {
            while(!Heap.empty() && !Pop.empty() && Heap.top() == Pop.top())
                Heap.pop(), Pop.pop();
            fout << Heap.top() << '\n';
        }
    }
    return 0;
}