Cod sursa(job #741850)

Utilizator RobertBBadea Corneliu Robert RobertB Data 27 aprilie 2012 10:46:17
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <map>

using namespace std;

priority_queue< int, vector<int>, greater<int> > H;
vector<int> poz;
map<int, int> nr_ap;

int N;


ifstream f("heapuri.in");
ofstream g("heapuri.out");

int main()
{
	poz.push_back(-1);
	f>>N;
	int cod,x,i;
	for(i = 0; i < N; i++) {
		f>>cod;
		switch(cod) {
		case 1:
			f>>x;
			poz.push_back(x);
			nr_ap[x]++;
			H.push(x);			
			break;
		case 2:
			f>>x;
			nr_ap[poz[x]]--;
			break;
		case 3:
			while(nr_ap[H.top()] == 0) {
				H.pop();
			}
			g<<H.top()<<"\n";
			break;
		}
	}
}