Cod sursa(job #2173848)

Utilizator Storm_FireFox1Matei Gardus Storm_FireFox1 Data 16 martie 2018 08:57:11
Problema Heapuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

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


vector <int> insertedElements;
vector <int> heap;

int numberOfElements = 0;

int main()
{
	int numberOfQueries, operationType;
	fin >> numberOfQueries;
	make_heap(heap.begin(), heap.end());
	while (numberOfQueries)
	{
		fin >> operationType;
		if (operationType == 1)
		{
			int number;
			fin >> number;
			heap.push_back(number);
			insertedElements.push_back(number);
			++numberOfElements;
			push_heap(heap.begin(), heap.end());
		}
		if (operationType == 2)
		{
			int number;
			fin >> number;
			heap.erase(find(heap.begin(), heap.end(), insertedElements[number - 1]));
			push_heap(heap.begin(), heap.end());
			insertedElements[number - 1] = 0;
		}
		if (operationType == 3)
		{
			fout << heap.back() << '\n';
		}
		--numberOfQueries;
	}
	return 0;
}