Cod sursa(job #1910038)

Utilizator lflorin29Florin Laiu lflorin29 Data 7 martie 2017 15:15:57
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <bits/stdc++.h>

using namespace std;

const int nMax = 2e5 + 2;

bool erased[nMax];
vector<int>v;
priority_queue<pair<int, int>>pq;

void upd_pq() {
	while (!pq.empty() and erased[pq.top().second])
		pq.pop();
}

int main() {
	ifstream cin("heapuri.in");
	ofstream cout("heapuri.out");

	int n;
	cin >> n;

	for (int i = 0; i < n; ++i) {
		int tip, x;
		cin >> tip;

		if (tip == 3) {
			upd_pq();
			cout << -pq.top().first << '\n';
		}
		else {
			cin >> x;

			if (tip == 1) {
				v.push_back(x);
				pq.emplace(-x, v.size());
			}
			else erased[x] = true;
		}
	}
	return 0;
}