Cod sursa(job #449931)

Utilizator lakat_tLakatos Tamas lakat_t Data 7 mai 2010 11:55:30
Problema Heapuri Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<iostream>
#include<algo.h>
#include<fstream>

using namespace std;

ifstream fin("heapuri.in");
ofstream fout("heapuri.out");

long int v[200001],w[200001],n,m,db,c,a;
long int p;

long int keres()
{
	long int kezd=1;
	while(kezd<=db&&w[kezd]!=a) kezd++;
		return kezd;
}

int main()
{	
	fin>>n;
	m=0;
	db=0;
	for(long int i=1;i<=n;i++)
	{
		fin>>c;
		switch(c){
		case 1:
			m++;
			fin>>v[m];
			db++;
			w[db]=v[m];
			make_heap(w+1,w+db+1,greater<int>()) ;
			break;
			
		case 2:
			fin>>a;
			a=v[a];
			p=keres();
			w[p]=w[db];
			db--;
			make_heap(w+1,w+db+1,greater<int>());
			break;
			
		case 3:
			fout<<w[1]<<"\n";
		}	
	}
	return 0;
}