Cod sursa(job #3130093)

Utilizator AlezuuZugravu Alexandra-Daniela Alezuu Data 16 mai 2023 20:21:09
Problema Heapuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.12 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <set>
#include <algorithm>

using namespace std;

set<int> multE;
vector<int> elem;
int aux = 0;

void inserare(int nr) {
    elem.push_back(nr);
    multE.insert(nr);
}

void stergere(int pozitie) {
    int x = elem[pozitie];
    multE.erase(x);
}

int main() {
    ifstream f("heapuri.in");
    ofstream g("heapuri.out");

    int nr_op;
    f >> nr_op;
    vector<pair<int, int>> operatii;

    for (int i = 0; i < nr_op; ++i) {
        int tip_op, nr;
        f >> tip_op;
        if (tip_op == 1 || tip_op == 2) {
            f >> nr;
            operatii.push_back({tip_op, nr});
        } else {
            operatii.push_back({tip_op, -1});
        }
    }

    for (const auto& op : operatii) {
        int tip_op = op.first;
        int nr = op.second;

        if (tip_op == 1) {
            inserare(nr);
        } else if (tip_op == 2) {
            stergere(nr - 1);
        } else if (tip_op == 3) {
            g << *multE.begin() << endl;
        }
    }

    f.close();
    g.close();

    return 0;
}