Cod sursa(job #980799)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 5 august 2013 17:47:41
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>
#include <vector>
#include <queue>
#include <iterator>
using namespace std;
ifstream f("heapuri.in");
ofstream g("heapuri.out");
int n;
int v[200010],p;
int viz[200010];

priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > > h;
//vector<int>::iterator it;

int main(void){
    register int i,j,t,x;
    pair<int,int> q;

    f>>n;
    for(i=1;i<=n;i++){
        f>>t;
        if(t==1){
            f>>x;
            v[++p]=x;
            h.push(make_pair(v[p],p));
        }
        else if(t==2){
            f>>x;
            viz[x]=true;
        }
        else{
            q=h.top();
            while(viz[q.second]){
                h.pop();
                q=h.top();
            }
            q=h.top();
            g<<q.first<<"\n";
        }
    }

    f.close();
    g.close();
    return 0;
}