Pagini recente » Cod sursa (job #919767) | Cod sursa (job #2635309) | Cod sursa (job #514385) | Cod sursa (job #345498) | Cod sursa (job #1400343)
#include <fstream>
#include <set>
using namespace std;
ifstream f("zeap.in");
ofstream g("zeap.out");
set<int> S;
set<int>::iterator it,it1,it2,fin;
set< pair<int,int> > S2;
set< pair<int,int> >::iterator it3;
int main()
{
char c[5];
int x;
while(f>>c)
{
if(c[0] == 'I')
{
f>>x;
S.insert(x);
it2 = it1 = it = S.find(x);
fin = S.end();
--fin;
if(it != S.begin() && it != fin)
{
--it1;
++it2;
it3 = S2.find(make_pair((*it2)-(*it1),*it1));
S2.erase(it3);
S2.insert(make_pair((*it)-(*it1),*it1));
S2.insert(make_pair((*it2)-(*it),*it));
}
else if(it == fin && S.size() > 1)
{
--it;
S2.insert(make_pair((*fin)-(*it),*it));
}
else if(it == S.begin() && S.size() > 1)
{
++it;
S2.insert(make_pair((*it)-(*S.begin()),*S.begin()));
}
}
else if(c[0] == 'S')
{
/*f>>x;
it = S.find(x);
if(it == S.end()) g<<"-1\n";
else
{
it2 = it1 = it;
++it2;
int k = 0;
if(it != S.begin())
{
++k;
--it1;
it3 = S2.find(make_pair((*it)-(*it1),*it1));
S2.erase(it3);
}
if(it2 != S.end())
{
++k;
it3 = S2.find(make_pair((*it2)-(*it),*it));
S2.erase(it3);
}
if(k == 2)
{
S2.insert(make_pair((*it2)-(*it1),*it1));
}
S.erase(it);
}*/
}
else if(c[0] == 'C')
{
f>>x;
it = S.find(x);
if(it == S.end()) g<<"0\n";
else g<<"1\n";
}
else if(c[1] == 'A')
{
it = S.end(); --it;
g<<(*it) - (*S.begin())<<"\n";
}
else if(c[1] == 'I')
{
g<<(*S2.begin()).first<<"\n";
}
}
f.close();
g.close();
return 0;
}