Pagini recente » Cod sursa (job #845967) | Cod sursa (job #82873) | Cod sursa (job #759858) | Cod sursa (job #1168327) | Cod sursa (job #2751715)
#include <fstream>
#include <set>
#include <cmath>
using namespace std;
set<int>s;
string str;
int main()
{
ifstream cin("zeap.in");
ofstream cout("zeap.out");
int n,i,nr;
getline(cin,str);
while(str.size()>=2)
{
n=str.size();
if(str[0]=='M')
{
if(s.size()<2)
{
cout<<"-1\n";
continue;
}
if(str[1]=='A')
cout<<*s.rbegin()-*s.begin()<<"\n";
else
{
int prevNr=-1, mn=1e9+5;
for(auto it=s.begin(); it!=s.end(); it++)
if(prevNr>=0)
mn=min(mn,abs((*it)-prevNr));
else
prevNr=*it;
cout<<mn<<"\n";
}
}
else
{
nr=0;
for(i=2; i<n; i++)
nr=nr*10+str[i]-'0';
if(str[0]=='I')
s.insert(nr);
else if(str[0]=='C')
{
auto it=s.find(nr);
if(it!=s.end())
cout<<"1\n";
else
cout<<"0\n";
}
else
{
auto it=s.find(nr);
if(it!=s.end())
s.erase(it);
else
cout<<"-1\n";
}
}
getline(cin,str);
}
return 0;
}