Cod sursa(job #1406891)

Utilizator theprdvtheprdv theprdv Data 29 martie 2015 17:45:16
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <queue>
#include <functional>
#include <fstream>

using namespace std;

fstream fin("heapuri.in", ios::in);
fstream fout("heapuri.out", ios::out);
#define MAXN 200010
bool out[MAXN];

int main() 
{
	priority_queue <pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> heap;
	int x, op, total = 0, n;
	fin >> n;

	for (int i = 1; i <= n; i++){
		fin >> op;
		if (op < 3) fin >> x;

		if (op == 1)
			heap.push(make_pair(x, ++total));
		else if (op == 2)
			out[x] = true;
		else {
			while (out[heap.top().second])  heap.pop();
			fout << heap.top().first << "\n";
		}
	}

	fin.close();
	fout.close();
	return 0;
}