Cod sursa(job #2282664)

Utilizator cezar.plescaCezar Plesca cezar.plesca Data 14 noiembrie 2018 11:41:54
Problema Heapuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include<stdio.h>

#include<iostream>
#include<fstream>

#include<set>
#include <algorithm>

using namespace std;

#define MAXN 200000
int ordine[MAXN];

//set<pair<int,int>> values;
multiset<int> values;

int main(){
	int N;

	freopen("heapuri.in", "r", stdin);
	//freopen("heapuri_test2.in", "r", stdin);
	freopen("heapuri.out", "w", stdout);

	scanf("%d", &N);

	int tip,x;
	int index=0,ind;

	for(int i=0;i<N;i++){
		 scanf("%d", &tip);

		switch(tip){
			case 1:
				// insert element
				scanf("%d", &x);
				ordine[index]=x;
				index++;
				//values.insert(make_pair(x,index));
				values.insert(x);
				break;
			case 2:
				// delete x-th element
				scanf("%d", &ind);
				x=ordine[ind-1];
				//values.erase(values.find(make_pair(x,ind)));
				values.erase(values.find(x));
				break;
			case 3:
				// display minimum
				//x=values.begin()->first;
				x=*values.begin();
				printf("%d\n",x);
				break;
		}
	}

	return 0;
}