Pagini recente » Cod sursa (job #467858) | Cod sursa (job #172888) | Cod sursa (job #1461230) | Cod sursa (job #3296600) | Cod sursa (job #2430223)
#include <iostream>
#include <set>
struct Valoare{
int numar;
int ordine;
};
namespace std {
template<>
struct less<Valoare> {
bool operator()(const Valoare &valoare1, const Valoare &valoare2) const {
return valoare1.numar < valoare2.numar;
}
};
}
int main() {
FILE * fisier_out = fopen("heapuri.out", "w");
FILE * fisier_in = fopen("heapuri.in", "r");
int N, cod, x, ordine_introdus = 1;
std::multiset<Valoare> mySet;
Valoare valoare;
fscanf(fisier_in, "%d", &N);
for(int i = 0; i < N; i++){
fscanf(fisier_in, "%d", &cod);
if(cod == 1){
fscanf(fisier_in, "%d", &x);
valoare.numar = x;
valoare.ordine = ordine_introdus;
ordine_introdus = ordine_introdus + 1;
mySet.insert(valoare);
}
if(cod == 2){
fscanf(fisier_in, "%d", &x);
for(std::set<Valoare>::iterator it = mySet.begin(); it != mySet.end(); it++) {
if(it->ordine == x){
mySet.erase(*it);
break;
}
}
}
if(cod == 3){
fprintf(fisier_out, "%d\n", mySet.begin()->numar);
}
}
return 0;
}