Pagini recente » Cod sursa (job #2546720) | Cod sursa (job #2962567) | Cod sursa (job #906539) | Cod sursa (job #50821) | Cod sursa (job #3131068)
//
// Created by Octavian Farcasi on 18.05.2023.
//
#include<iostream>
#include<fstream>
#include<vector>
#include<set>
int main(){
std::ifstream f("heapuri.in");
std::ofstream g("heapuri.out");
int n, operatie, valoare,ok=0;
std::vector<int>ordinea_inserarii; //primesc o pozitie si returnez un element
std::set<int>heap; //heap-ul
// in final conteaza sa tinem cont de ordinea in care inseram si de cel mai mic element
f>>n;
while(n>0){
f>>operatie;
switch (operatie) {
case 1:
f>>valoare;
ordinea_inserarii.push_back(valoare); //tinem minte numerele inserate
heap.insert(valoare); //mi le ordoneaza set-ul deja
break;
case 2:
f>>valoare;
if(valoare-1<ordinea_inserarii.size())
heap.erase(ordinea_inserarii[valoare-1]);
break;
case 3:
if(ok)
g << "\n";
g<<*heap.begin();
ok=1;
break;
}
n--;
}
f.close();
g.close();
return 0;
}