Cod sursa(job #944597)

Utilizator howsiweiHow Si Wei howsiwei Data 29 aprilie 2013 07:50:57
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
typedef pair<int,int> ii;

vector<int> v(1);

int main()
{
	ifstream fin("heapuri.in");
	ofstream fout("heapuri.out");
	int n;
	fin >> n;
	priority_queue<int, vector<ii>, greater<ii> > a;

	for (int nth = 0, i = 1; i <= n; ++i) {
		int op, x;
		fin >> op;
		switch (op) {
			case 1: fin >> x;
					v.push_back(x);
					a.push( ii(x, ++nth) );
					break;
			case 2: fin >> x;
					v[x] = 1<<30;
					break;
			case 3: while (v[a.top().second] == 1<<30) a.pop();
					fout << v[a.top().second] << '\n';
					break;
		}
	}

	return 0;
}