Cod sursa(job #1172708)

Utilizator andreiagAndrei Galusca andreiag Data 17 aprilie 2014 23:04:17
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <queue>
#include <vector>

using namespace std;
typedef pair<int, int> pii;
const int Nmax = 222222;

char este[Nmax];
priority_queue<pii, vector<pii>, greater<pii>> Q;

int main()
{
    ifstream f ("heapuri.in");
    ofstream g ("heapuri.out");

    int N, op, x, ord = 1;
    f >> N;
    while(N--)
    {
        f >> op;
        switch (op) {
            case 1: f >> x;
                    este[ord] = 1;
                    Q.push(make_pair(x, ord));
                    ord++;
                    break;
            case 2: f >> x;
                    este[x] = 0;
                    break;
            case 3: while(!este[Q.top().second])
                        Q.pop();
                    g << Q.top().first << '\n';
        }
    }

    return 0;
}