Cod sursa(job #431193)

Utilizator ooctavTuchila Octavian ooctav Data 31 martie 2010 19:14:29
Problema Heapuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <cstdio>
#include <algorithm>
using namespace std;
const int NMAX = 200005;
int N, L = 0, NR = 0;
int V[NMAX], Heap[NMAX], Poz[NMAX];

void rezolvare()
{
	int x, ind;
	scanf("%d",&N);
	for(int i = 1 ; i <=N ; i++)
	{
		scanf("%d",&iden);
		if(iden < 3)
			scanf("%d",&x);
		if(iden == 1)
		{
			V[++NR] = x;
			Heap[++L] = NR;
			Poz[NR] = L;
			push(L);
			continue;
			
		}
		if(iden == 2)
		{
			V[x] = -1;
			push(Poz[x]);
			Heap[1] = Heap[L--];
			continue;
		}
		printf("%d\n",V[Heap[1]]);
	}
}

int main()
{
	freopen("heapuri.in","r",stdin);
	freopen("heapuri.out","w",stdout);
	rezolvare();
	
	return 0;
}