Pagini recente » Cod sursa (job #2451016) | Cod sursa (job #600977) | Cod sursa (job #2541149) | Cod sursa (job #2592253) | Cod sursa (job #3130579)
#include <fstream>
#include <map>
int main() {
std::ifstream fin("zeap.in");
std::ofstream fout("zeap.out");
std::map<int, bool> map;
while (fin.good()) {
char c;
int x;
fin >> c;
switch (c)
{
case 'I':
fin >> x;
map[x] = true;
break;
case 'S':
fin >> x;
if (map.find(x) != map.end())
map.erase(x);
else
fout << -1 << '\n';
break;
case 'C':
fin >> x;
if(map.find(x) != map.end())
fout << 1 << '\n';
else
fout << 0 << '\n';
break;
case 'M':
fin >> c;
if (c == 'A') {
if (map.size() > 1)
fout << map.rbegin()->first - map.begin()->first << '\n';
else
fout << -1 << '\n';
}
else {
if (map.size() > 1) {
auto end = map.end();
--end;
int min_diff = 999999999;
for (auto e = map.begin(); e != end; ++e) {
auto next = e;
++next;
if (next->first - e->first < min_diff)
min_diff = next->first - e->first;
}
fout << min_diff << '\n';
}
else
fout << -1 << '\n';
}
fin >> c;
break;
}
}
return 0;
}