Pagini recente » Cod sursa (job #3272794) | Cod sursa (job #2126039) | Cod sursa (job #1842121) | Cod sursa (job #2846060) | Cod sursa (job #3128983)
#include <iostream>
#include <fstream>
#include <set>
#include <algorithm>
using namespace std;
int main() {
ifstream fisierIntrare("zeap.in");
ofstream fisierIesire("zeap.out");
set<int> zeap;
string operatie;
int x;
while (fisierIntrare >> operatie) {
if (operatie == "I") {
fisierIntrare >> x;
zeap.insert(x);
} else if (operatie == "S") {
fisierIntrare >> x;
auto it = zeap.find(x);
if (it != zeap.end()) {
zeap.erase(it);
} else {
fisierIesire << "-1\n";
}
} else if (operatie == "C") {
fisierIntrare >> x;
fisierIesire << (zeap.count(x) ? 1 : 0) << '\n';
} else if (operatie == "MAX") {
if (zeap.size() < 2) {
fisierIesire << "-1\n";
} else {
fisierIesire << *zeap.rbegin() - *zeap.begin() << '\n';
}
} else if (operatie == "MIN") {
if (zeap.size() < 2) {
fisierIesire << "-1\n";
} else {
int min_dif = numeric_limits<int>::max();
for (auto it = next(zeap.begin()); it != zeap.end(); ++it) {
min_dif = min(min_dif, *it - *prev(it));
}
fisierIesire << min_dif << '\n';
}
}
}
fisierIntrare.close();
fisierIesire.close();
return 0;
}