Cod sursa(job #1123075)

Utilizator Dddarius95Darius-Florentin Neatu Dddarius95 Data 25 februarie 2014 22:27:38
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
// Heapuri - priority_queue- O(logN)
#include <fstream>
#include <queue>
#include <bitset>
#define Nmax 200099
#define mp make_pair
#define x first
#define y second
using namespace std;
ifstream f("heapuri.in");
ofstream g("heapuri.out");

int N,K;
typedef pair<int,int> key;
priority_queue< key , vector< key >, greater< key > > pq;
bitset < Nmax > cut;

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