Cod sursa(job #1548796)

Utilizator theodor.moroianuTheodor Moroianu theodor.moroianu Data 11 decembrie 2015 15:29:55
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <set>
#include <queue>
#include <fstream>
#include <vector>
using namespace std;

priority_queue <int> pq;
set <int> rem;
vector <int> nr;
int i, j, op, n;

int main() {
	ifstream in("heapuri.in");
	ofstream out("heapuri.out");
	in >> n;
	while (n--) {
		in >> op;
		if (op == 1) {
			in >> i;
			nr.push_back(-1 * i);
			pq.push(-1 * i);
		}
		else if (op == 2) {
			in >> i;
			rem.insert(nr[i - 1]);
			while (rem.find(pq.top()) != rem.end()) {
				rem.erase(pq.top());
				pq.pop();
			}
		}
		else
			out << -1 * pq.top() << '\n';
	}
}