Cod sursa(job #499895)

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

using namespace std;

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

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

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

	return 0;
}