Cod sursa(job #1485862)

Utilizator tudorcomanTudor Coman tudorcoman Data 13 septembrie 2015 10:35:44
Problema Heapuri Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb

#include <fstream>
#include <map>
using namespace std;

ifstream fi ("heapuri.in");
ofstream fo ("heapuri.out");
ofstream flog("heapuri.log");

int N, elem;
map <int, int> Heap1;
map <int, int> Heap2;

void af() {
	for(auto& it: Heap1)
		flog << it.first << " : " << it.second << '\n';

	flog << '\n';

	for(auto& it: Heap2)
		flog << it.first << " : " << it.second << '\n';

	flog << '\n';
}
int main() {

	for( fi >> N; N; -- N ) {
		int op, param;
		fi >> op;

		switch(op) {
			case 1: {
				fi >> param;
				Heap1[++ elem] = param;
				Heap2[param] = elem;
				break;
			}

			case 2: {
				fi >> param;
				map<int, int> :: iterator it = Heap1.find(param);
				Heap1.erase(it);
				Heap2.erase(it->second);
				break;
			}

			case 3: {
				map<int, int> :: iterator it = Heap2.begin();
				fo << it->first << '\n';
			}
		}

		af();
	}

	fi.close();
	fo.close();
	return 0;
}