Pagini recente » Cod sursa (job #1123923) | Cod sursa (job #1166743) | Cod sursa (job #2717961) | Cod sursa (job #1478331) | Cod sursa (job #2630247)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("zeap.in");
ofstream fout("zeap.out");
set<int>z;
multiset<unsigned int>dif;
const unsigned int INF=2000000001;
int main()
{
string op;
z.insert(INF);
z.insert(-INF);
dif.insert(2*INF);
while(fin>>op)
{
if(op=="I")
{
int x;
fin>>x;
if(z.find(x)==z.end())
{
z.insert(x);
//for (auto x : z) cout << x << endl;
auto it=z.find(x);
auto itst=z.find(x);
--itst;
auto itdr=z.find(x);
++itdr;
//cout<<*itdr-*itst<<endl;
dif.erase(dif.find(*itdr-*itst));
dif.insert(*itdr-*it);
dif.insert(*it-*itst);
}
}
else if(op=="S")
{
int x;
fin>>x;
auto it=z.find(x);
if(it!=z.end())
{
auto itst=z.find(x);
--itst;
auto itdr=z.find(x);
++itdr;
dif.erase(dif.find(*itdr-*it));
dif.erase(dif.find(*it-*itst));
dif.insert(*itdr-*itst);
z.erase(x);
}
else fout<<"-1\n";
}
else if(op=="C")
{
int x;
fin>>x;
if(z.find(x)!=z.end())
fout<<1<<"\n";
else fout<<0<<"\n";
}
else if(op=="MAX")
{
fout<<*(--(--z.end()))-*(++z.begin())<<"\n";
}
else
{
if(z.size()!=1)
fout<<*dif.begin()<<"\n";
}
//cout<<"o"<<endl;
}
}