Cod sursa(job #1148545)

Utilizator dumytruKana Banana dumytru Data 20 martie 2014 21:19:35
Problema Heapuri Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 1.1 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;



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=v.begin();
            v_size=v.size();
            step=v_size;
            cout<<step;
            advance(it,step/2);
            while(step)
            {
                step/=2;
                if((*it).first==r)break;
                else if((*it).first<r){advance(it, step);}
                else {advance(it, -step);}
            }

            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;
}