Pagini recente » Cod sursa (job #2380744) | Cod sursa (job #819548) | Cod sursa (job #1249927) | Cod sursa (job #758950) | Cod sursa (job #1360664)
#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;
}