Pagini recente » Cod sursa (job #2341664) | Cod sursa (job #2779942) | Cod sursa (job #2221317) | Cod sursa (job #1617781) | Cod sursa (job #1191119)
#include<fstream>
#include<algorithm>
#include<set>
using namespace std;
typedef pair<set<int>::iterator,bool> pib;
const int INF = (1LL<<31)-1;
set<int> S;
set<int> Q;
set<int>::iterator it;
pib P;
int main()
{
char c;
int x,a,b;
ifstream fin("zeap.in");
ofstream fout("zeap.out");
S.insert(0);
S.insert(INF);
while(fin>>c)
{
if(c=='I')
{
fin>>x;
P=S.insert(x);
if(P.second)
{
it=P.first;
it--;
a=*it;
it++;
it++;
b=*it;
if(a>0) Q.insert(x-a);
if(b<INF) Q.insert(b-x);
if(a>0 && b<INF) Q.erase(b-a);
}
continue;
}
if(c=='S')
{
fin>>x;
it=S.find(x);
if(it!=S.end())
{
it--;
a=*it;
it++;
it++;
b=*it;
it--;
if(a>0) Q.erase(x-a);
if(b<INF) Q.erase(b-x);
if(a>0 && b<INF) Q.insert(b-a);
S.erase(it);
}
else fout<<-1<<'\n';
continue;
}
if(c=='C')
{
fin>>x;
fout<<((S.find(x))!=(S.end()))<<'\n';
continue;
}
fin>>c;
fin>>c;
if(S.size()<=3)
{
fout<<-1<<'\n';
continue;
}
if(c=='X')
{
it=S.end();
it--;
it--;
a=*it;
it=S.begin();
it++;
b=*it;
fout<<a-b<<'\n';
continue;
}
else
{
fout<<*(Q.begin())<<'\n';
continue;
}
}
return 0;
}