Pagini recente » Cod sursa (job #1292888) | Cod sursa (job #3189231) | Cod sursa (job #1911716) | Cod sursa (job #2407526) | Cod sursa (job #2899713)
#include <iostream>
#include <fstream>
#include <set>
using namespace std;
ifstream f("zeap.in");
ofstream g("zeap.out");
char s[11];
int x;
set<int> z;
multiset<int> z2;
int main()
{
while (f>> s)
{
if (s[0] == 'I')
{
f >> x;
if (z.find(x) == z.end())
{
z.insert(x);
auto i = z.find(x);
if (i != z.begin())
{
auto j = i;
j--;
z2.insert(*i - *j);
}
auto k = i;
k++;
if (k != z.end())
z2.insert(*k - *i);
}
}
else if (s[0] == 'S')
{
f >> x;
auto i = z.find(x);
if (i == z.end())
g << -1 << endl;
else
{
if (i != z.begin())
{
auto j = i;
j--;
z2.erase(z2.find(*i - *j));
auto l = i;
l++;
if (l != z.end())
z2.insert(*l - *j);
}
auto k = i;
k++;
if (k != z.end())
z2.erase(z2.find(*k - *i));
z.erase(i);
}
}
else if (s[0] == 'C')
{
f >> x;
auto i = z.find(x);
if (i != z.end())
g << 1 << '\n';
else
g << 0 << '\n';
}
else if (s[1] == 'A')
{
if (z.size() < 2)
g << -1 << '\n';
else
{
auto k = z.end();
k--;
auto j = z.begin();
g << *k - *j << '\n';
}
}
else if (s[1] == 'I')
{
if (z2.empty())
g << -1 << '\n';
else
{
auto m = z2.begin();
g<< *m << '\n';
}
}
}
}