Cod sursa(job #1233299)

Utilizator roxana_97Soare Roxana Florentina roxana_97 Data 25 septembrie 2014 08:42:34
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <queue>
#include <bitset>
#define x first
#define y second
#define Nmax 200099
using namespace std;

ifstream f("heapuri.in");
ofstream g("heapuri.out");
typedef pair<int,int> PP;
int N,K;

 priority_queue < PP , vector < PP > , greater < PP > > pq; // miniHeap
//priority_queue < PP , vector < PP >  > pq;  //Maxheap
bitset < Nmax > bad;

int main(){
    f>>N;
    for (int i=1; i<=N;++i){
        int op ,val , poz;
        f>>op;
        if(op==1){
            f>>val;
            pq.push( PP(val, ++K) );
        }
        if(op==2){
            f>>poz;
            bad[poz]=1;
        }
        if(op==3){
            while(bad[pq.top().y]) pq.pop();
            g << pq.top().x<<'\n';
        }
    }
    f.close();g.close();
    return 0;
}