Cod sursa(job #765600)

Utilizator danalex97Dan H Alexandru danalex97 Data 8 iulie 2012 12:09:55
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <queue>
#include <bitset>
using namespace std;

#define Smax 300011

ifstream F("heapuri.in");
ofstream G("heapuri.out");

priority_queue< pair<int,int> , vector< pair<int,int> > , greater< pair<int,int> > > H;

bitset<Smax> Delete;
int N,Op,Value,Nbr;

int main()
{
	for (F>>N;N;--N)
	{
		F>>Op;
		switch (Op)
		{
			case 1:
				{
					F>>Value;
					H.push( make_pair(Value,++Nbr) );
					break;
				}
			case 2:
				{
					F>>Value;
					Delete[Value]=1;
					break;
				}
			case 3:
				{
					while ( Delete[ H.top().second ] ) H.pop();
					G<<H.top().first<<'\n';
					break;
				}
		}
	}
}