Pagini recente » Cod sursa (job #1333861) | Cod sursa (job #200444) | Cod sursa (job #1076925) | Cod sursa (job #14645) | Cod sursa (job #2897748)
#include <bits/stdc++.h>
using namespace std;
ifstream f("zeap.in");
ofstream g("zeap.out");
#define cin f
#define cout g
set < int > numbers, dif;
int main()
{
string s;
while(cin >> s)
{
int x;
set < int >::iterator it, it1, it2;
if(s[0] == 'I')
{
cin >> x;
it = numbers.find(x);
if(it == numbers.end())
{
numbers.insert(x);
it = numbers.find(x);
it1 = it, it2 = it;
it1 --, it2 ++;
if(it != numbers.begin())
dif.insert(*it - *(it1));
if(it != -- numbers.end())
dif.insert(*(it2) - *it);
if(it != numbers.begin() and it != -- numbers.end())
dif.erase(*(it2) - *(it1));
}
}
else if(s[0] == 'S')
{
cin >> x;
it = numbers.find(x);
if(it != numbers.end())
{
it1 = it, it2 = it;
it1 --, it2 ++;
if(it != numbers.begin())
dif.erase(*it - *(it1));
if(it != -- numbers.end())
dif.erase(*(it2) - *it);
if(it != numbers.end() and it != -- numbers.end())
dif.insert(*(it2) - *(it1));
numbers.erase(it);
}
else
cout<<-1<<'\n';
}
else if(s[0] == 'C')
{
cin >> x;
it = numbers.find(x);
if(it == numbers.end())
cout<<0<<'\n';
else
cout<<1<<'\n';
}
else if(s[1] == 'A')
{
if(numbers.size() > 1)
cout<<*(-- numbers.end()) - *(numbers.begin())<<'\n';
else
cout<<-1<<'\n';
}
else
{
if(numbers.size() > 1)
cout<<*dif.begin()<<'\n';
else
cout<<-1<<'\n';
}
}
return 0;
}