Cod sursa(job #2896035)

Utilizator AncaGAncuta Gava AncaG Data 29 aprilie 2022 19:15:58
Problema Heapuri Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 2.11 kb

#include <iostream>
#include <fstream>
#include <set>
#include <vector>

std::ifstream input("heapuri.in");
std::ofstream output("heapuri.out");

std::set<int> heap_dubios;

int main()
{
    unsigned int tip, x, n, k = 1, pos[200005];
    input>>n;
    for(int i = 0; i < n; i++)
    {
        input>>tip;
        switch (tip)
        {
            case 1:
            {
                input>>x;
                heap_dubios.insert(x);
                pos[k++] = x;
                break;
            }
            case 2:
            {
                input>>x;
                heap_dubios.erase(pos[x]);
                break;
            }
            case 3:
            {
                output<<*heap_dubios.begin()<<'\n';
                break;
            }
        }
    }
    return 0;
}


//
//// tare ciudata platforma...
//int main()
//{
//// am nevoie de un set mai degraba decat un vector fiindca am unicitate si sortarea elem cresc :)
//// are sens unicitatea aici pt ca afisez minimul si atunci nu voi face multiset ci sset
//std::set<int> sweet_heap;
//// am nevoie de un vector in care sa retin elem inserat
//// ordinea o preia prin index
//std::vector<int> ordine;
//    unsigned int n, i=0, op, x;
//
//    //ocup pozitia 0 din vector fiindca nu am nevoie  de ea la optiuni
//    input >> n;
////   unsigned int ordine[n];
////    ordine.push_back(-10);
//
//    for (;i<n; ++i) {
//        input >> op;
//            if (op == 1){
//                input >> x;
////                ++index;
////                ordine[index]=x;
//                sweet_heap.insert(x);
//                ordine.push_back(x);
//            }
//            // pt optiunea 2 am stergerea al x-lea elem
//            else if (op==2){
//                input >> x;
//                sweet_heap.erase(ordine[x]);
//            }
//            else if (op == 3) {
//                // set.begin() imi ia cel mai mic elem
//                output << *sweet_heap.begin() << std::endl;
//            }
//        }
////    input.close();
////    output.close();
//    return 0;
//}