Pagini recente » Cod sursa (job #904783) | Cod sursa (job #35459) | Cod sursa (job #985042) | Cod sursa (job #392428) | Cod sursa (job #929353)
Cod sursa(job #929353)
#include<fstream>
#include<iostream>
#include<map>
#include<algorithm>
using namespace std;
ifstream fin("zeap.in");
ofstream fout("zeap.out");
map<int,bool> v;
char x[5];
int n;
int minim=(1<<30),sw=0;
map<int,bool>::iterator it1,it2,it3;
void min_find()
{
minim=(1<<30);
it1=v.begin();
it2=it1++;
for(;it1!=v.end();it1++,it2++)
minim=min(minim,(*it1).first-(*it2).first);
}
int main()
{
while(fin>>x)
{
if(x[0]=='I')
{
fin>>n;
v.insert(pair<int,bool>(n,1));
if(v.size()<3)
{
if(v.size()==2)
min_find();
continue;
}
it3=v.find(n);
//if(it3!=v.end())
{
int d1=(1<<30),d2=(1<<30);
it2=it3++;
it1=--it2;
it2++;
if(it2!=v.begin())
d1=(*it2).first-(*it1).first;
if(it3!=v.end())
d2=(*it3).first-(*it2).first;
minim=min(minim,min(d1,d2));
}
continue;
}
if(x[0]=='S')
{
fin>>n;
if(!v.erase(n))
fout<<-1<<'\n';
else
min_find();
continue;
}
if(x[0]=='M')
{
if(v.size()<2)
{
fout<<-1<<'\n';
continue;
}
if(x[1]=='A')
{
it1=v.end();
it1--;
it2=v.begin();
fout<<(*it1).first-(*it2).first<<'\n';
}
else
{
if(v.size()==2)
min_find();
fout<<minim<<'\n';
}
continue;
}
if(x[0]=='C')
{
fin>>n;
fout<<(v.find(n)!=v.end())<<'\n';
}
}
fin.close();
fout.close();
return 0;
}