Cod sursa(job #314191)

Utilizator klamathixMihai Calancea klamathix Data 10 mai 2009 20:20:42
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include<cstdio>
#include<set>

#define MAXN 200010
/*
typedef int Heap[MAXN];

inline int father(int nod) {
       return nod >> 1;
}

inline int left_son(int nod){
       return nod << 1;
}

inline int right_son(int nod){
       return nod << 1 + 1;
}



*/
using namespace std;

multiset <int> Heap;

int i , N , poz[MAXN] , type , argument , k;

int main()
{
    freopen("heapuri.in","r",stdin);
    freopen("heapuri.out","w",stdout);
    
    scanf("%d",&N);
    
    for( i = 1 ; i <= N ; i++)
    {
         scanf("%d",&type);
         
         if( type == 3 ) printf("%d\n",*(Heap.begin()));
         
         else 
         {
              scanf("%d",&argument);
              
              if( type == 1) 
              {
                  Heap.insert(argument);
                  poz[++k] = argument;
              }
              
              else Heap.erase(Heap.find(poz[argument]));
         }
    }
    
return 0;
}