Cod sursa(job #1360664)

Utilizator vladvaldezVlad Dimulescu vladvaldez Data 25 februarie 2015 17:08:40
Problema Heapuri Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <stdio.h>
#include <vector>
#include <functional>
#include <algorithm>

using namespace std;
FILE *f=fopen("heapuri.in","r");
FILE *g=fopen("heapuri.out","w");

vector <int> v;
int n,y,i,x,a[200005],nr;


int main()
{
fscanf(f,"%d",&n);
for(i=1;i<=n;i++){
 fscanf(f,"%d",&y);
 if (y==1){
   fscanf(f,"%d",&x);
   v.push_back(x);
   push_heap(v.begin(),v.end(),greater<int>());
 a[++nr]=x;
 }
else if (y==2){
   fscanf(f,"%d",&x);
   v.erase(find(v.begin(),v.end(),a[x]));
   make_heap(v.begin(),v.end(),greater<int>());
}
else fprintf(g,"%d\n",v.front());
}




fclose(g);
return 0;
}