Cod sursa(job #1395826)

Utilizator dinurosca03Rosca Dinu Cristian dinurosca03 Data 21 martie 2015 15:56:44
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>
#include <queue>

using namespace std;

const int MAXN =  200010;

int main() {
   ifstream fin("heapuri.in");
   ofstream fout("heapuri.out");
    int n, tip, x, k = 0;
    bool sters[MAXN];

    priority_queue<pair<int, int> > q;
    fin>>n;
    while (n--) {
        fin>>tip;
        if(tip==1){
            fin>>x;
            q.push(make_pair(-x,++k));
        }
        if (tip==2) {
            fin>>x;
            sters[x]=true;
        }
        if(tip==3) {
            while(sters[q.top().second])
                q.pop();
            fout<<-q.top().first<<'\n';
        }
    }
    fin.close();
    fout.close();
    return 0;
}