Cod sursa(job #2282650)

Utilizator cezar.plescaCezar Plesca cezar.plesca Data 14 noiembrie 2018 11:23:35
Problema Heapuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 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;

int main(){
	int N;

	freopen("heapuri.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));
				break;
			case 2:
				// delete x-th element
				scanf("%d", &ind);
				x=ordine[ind-1];
				values.erase(values.find(make_pair(x,ind)));
				break;
			case 3:
				// display minimum
				x=values.begin()->first;
				printf("%d\n",x);
				break;
		}
	}

	return 0;
}