Cod sursa(job #1148590)

Utilizator dumytruKana Banana dumytru Data 20 martie 2014 21:53:17
Problema Heapuri Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <set>
#include <algorithm>
#include <utility>

using namespace std;
set <int> heap;
set<pair<int,int> > v;
set<pair<int,int> >::iterator it;


unsigned compare(pair<int,int> a, int b)
{
    if(a.first<b)
        return 1;
    else
        return 0;
}

int main()
{
    ifstream f("heapuri.in");
    ofstream g("heapuri.out");
    unsigned t;
    int r,i,x=1,n,step,v_size;
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>t;
        if(t==3)g<<*heap.begin()<<'\n';
        else if(t==2)
        {
            f>>r;

            it = lower_bound (v.begin(), v.end(),r, compare);

            heap.erase((*it).second);
            v.erase(it);
        }
        else if(t==1)
        {
            f>>r;
            heap.insert(r);
            v.insert(make_pair(x,r));
            x++;
        }
    }
    return 0;
}