Cod sursa(job #1510515)

Utilizator refugiatBoni Daniel Stefan refugiat Data 25 octombrie 2015 10:16:58
Problema Heapuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include<iostream>
#include<fstream>
#include<queue>
using namespace std;
struct heap
{
    int x,poz;
    heap(int x1,int poz1)
    {
        x=x1;
        poz=poz1;
    }
    bool operator <(const heap &aux) const
    {
        return x>aux.x;
    }
};
priority_queue<heap> h;
int nr;
char vaz[200005];
int main()
{
    ifstream si;
    si.open("heapuri.in");
    ofstream so;
    so.open("heapuri.out");
    int n;
    si>>n;
    int i,a,b;
    for(i=0;i<n;++i)
    {
        si>>a;
        if(a==1)
        {
            si>>b;
            nr++;
            h.push(heap(b,nr));
        }
        else if(a==2)
        {
            si>>b;
            vaz[b]=1;
        }
        else
        {
            while(vaz[h.top().poz]) h.pop();
            cout<<h.top().x<<'\n';;
        }
    }
}