Cod sursa(job #761955)

Utilizator VisuianMihaiMihai Visuian VisuianMihai Data 27 iunie 2012 23:54:57
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<fstream>
#include<queue>
using namespace std;
ifstream fin("heapuri.in");
ofstream fout("heapuri.out");

priority_queue<pair<int, int>, vector<pair<int, int> >, greater< pair<int, int> > > s;
int n, i, op, val, poz, k;
bool del[200001];

int main()
{
	fin >> n;
	for ( i = 1; i <= n; i++ )
	{
		fin >> op;
		if ( op == 1 )
		{
			fin >> val;
			s.push(make_pair(val,++k));
		}
		if ( op == 2 )
		{
			fin >> poz;
			del[poz] = 1;
		}
		if ( op == 3 )
		{
			while ( del[s.top().second] )
				s.pop();
			fout << s.top().first << '\n';
		}
	}
	fin.close();
	fout.close();
	return 0;
}