Pagini recente » Cod sursa (job #1773176) | Cod sursa (job #2099641) | Cod sursa (job #1288684) | Cod sursa (job #2552053) | Cod sursa (job #3130580)
#include <fstream>
#include <set>
int main() {
std::ifstream fin("zeap.in");
std::ofstream fout("zeap.out");
std::set<int> set;
while (fin.good()) {
char c;
int x;
fin >> c;
switch (c)
{
case 'I':
fin >> x;
set.insert(x);
break;
case 'S':
fin >> x;
if (set.find(x) != set.end())
set.erase(x);
else
fout << -1 << '\n';
break;
case 'C':
fin >> x;
if(set.find(x) != set.end())
fout << 1 << '\n';
else
fout << 0 << '\n';
break;
case 'M':
fin >> c;
if (c == 'A') {
if (set.size() > 1)
fout << *set.rbegin() - *set.begin() << '\n';
else
fout << -1 << '\n';
}
else {
if (set.size() > 1) {
auto end = std::prev(set.end());
int min_diff = 999999999;
for (auto e = set.begin(); e != end; ++e) {
auto next = std::next(e);
if (*next - *e < min_diff)
min_diff = *next - *e;
}
fout << min_diff << '\n';
}
else
fout << -1 << '\n';
}
fin >> c;
break;
}
}
return 0;
}