Cod sursa(job #2276436)

Utilizator VadimCCurca Vadim VadimC Data 4 noiembrie 2018 18:44:27
Problema Heapuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <functional>

using namespace std;

#define NMax 200010

ifstream fin("heapuri.in");
ofstream fout("heapuri.out");

int n, nr = 1;
priority_queue< pair<int, int>, vector< pair<int, int> >, greater< pair<int, int> > > q;
vector<bool> e(NMax, false);

int main(){
	int i, tip, x;
	fin >> n;
	for(i = 1; i <= n; i++){
		fin >> tip;
		if(tip == 1){
			fin >> x;
			q.push(make_pair(x, nr++));
		}
		else if(tip == 2){
			fin >> x;
			e[x] = true;
		}
		else if(tip == 3){
			while(e[q.top().second]) q.pop();
			fout << q.top().first << '\n';
		}
	}
}