Cod sursa(job #499891)

Utilizator shitprogrammingProgramming Shit shitprogramming Data 10 noiembrie 2010 23:11:11
Problema Heapuri Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.h>
#include <algorithm>
#include <vector>

using namespace std;

vector<int> heap;
int i,n,sw,x,v[200002],m;

bool cmp(const int x,const int y)
{
	return x>y;
}
int main()
{
	freopen("heapuri.in","r",stdin);
	freopen("heapuri.out","w",stdout);

	scanf("%d",&n);
	m=0;
	for(i=1;i<=n;i++)
	{
		scanf("%d",&sw);
		if(sw==1)
		{
			scanf("%d",&v[++m]);
			heap.push_back(v[m]);
			push_heap(heap.begin(),heap.end(),cmp);
		}
		else
		if(sw==2)
		{
			scanf("%d",&x);
			heap.erase(remove(heap.begin(),heap.end(),v[x]),heap.end());
			make_heap(heap.begin(),heap.end(),cmp);
		}
		else
		printf("%d\n",heap.front());
	}

	return 0;
}