Pagini recente » Cod sursa (job #2284422) | Cod sursa (job #1604669) | Cod sursa (job #2349971) | Cod sursa (job #1989369) | Cod sursa (job #3130093)
#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;
}