Cod sursa(job #841892)

Utilizator dariusdariusMarian Darius dariusdarius Data 25 decembrie 2012 14:06:41
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<stdio.h>
#include<set>
using namespace std;
struct MyStruct {int i,a;};
class MyComp
{
public: inline bool operator()(const MyStruct &x,const MyStruct &y)
    {
        return x.a<y.a;
    }
};
multiset<MyStruct, MyComp> s;
int f[200005];
int main()
{
    freopen("heapuri.in","r",stdin);
    freopen("heapuri.out","w",stdout);
    int n,i,t,a,u=0;MyStruct v;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&t);
        if(t==1)
        {
            scanf("%d",&a);
            v.a=a;v.i=++u;
            f[u]=a;
            s.insert(v);
        }
        else
            if(t==2)
            {
                scanf("%d",&a);
                v.a=f[a];v.i=a;
                s.erase(v);
            }
            else
                printf("%d\n",s.begin()->a);
    }
    return 0;
}