Cod sursa(job #1814769)

Utilizator Vally77FMI Calinescu Valentin Gelu Vally77 Data 24 noiembrie 2016 15:34:34
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 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, coada2;

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