Cod sursa(job #1814757)

Utilizator Vally77FMI Calinescu Valentin Gelu Vally77 Data 24 noiembrie 2016 15:21:34
Problema Heapuri Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <map>
using namespace std;
ifstream ka("heapuri.in");
ofstream ki("heapuri.out");

const int N_MAX = 200000;

int n, c, x;
int elemente[N_MAX + 1];

map<int, int> sters;
priority_queue<int, vector<int>, greater<int> > coada;

int main()
{
	ka >> n;
	while(n--)
	{
		ka >> c;
		if(c == 1)
		{
			ka >> x;
			elemente[++elemente[0]] = x;
			coada.push(x);
		}
		else if(c == 2)
		{
			ka >> x;
			sters[elemente[x]]++;
		}
		else //if(c == 3)
		{
			while(sters[coada.top()] != 0)
			{
				sters[coada.top()]--;
				coada.pop();
			}
			ki << coada.top() << '\n';
			coada.pop();
		}
	}
}