Cod sursa(job #944595)

Utilizator howsiweiHow Si Wei howsiwei Data 29 aprilie 2013 07:37:49
Problema Heapuri Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
vector<int> v(1);

class cmp
{
public:
	bool operator() (int a, int b) {
		return v[a] > v[b];
	}
};

int main()
{
	ifstream fin("heapuri.in");
	ofstream fout("heapuri.out");
	int n;
	fin >> n;
	priority_queue<int, vector<int>, cmp> 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(++nth);
					break;
			case 2: fin >> x;
					v[x] = 1<<30;
					break;
			case 3: while (v[a.top()] == 1<<30) a.pop();
					fout << v[a.top()] << '\n';
					break;
		}
	}

	return 0;
}