Pagini recente » Cod sursa (job #1119162) | Cod sursa (job #1474042) | Cod sursa (job #2856593) | Cod sursa (job #1430856) | Cod sursa (job #2751889)
#include <fstream>
#include <cstring>
#include <set>
using namespace std;
ifstream in("zeap.in");
ofstream out("zeap.out");
set <int> s;
int main()
{
char cod[4];
while(in >> cod)
{
if(strcmp(cod,"I")==0)
{
int x;
in >> x;
if(s.find(x) == s.end())
s.insert(x);
}
else if(strcmp(cod,"S")==0)
{
int x;
in >> x;
if(s.find(x) != s.end())
s.erase(x);
else
out << -1 << "\n";
}
else if(strcmp(cod,"C")==0)
{
int x;
in >> x;
if(s.find(x) != s.end())
out << 1 << "\n";
else
out << 0 << "\n";
}
else if(strcmp(cod,"MAX")==0)
{
if(s.size() < 2)
out << -1 << "\n";
else
{
auto it1 = s.begin();
auto it2 = s.rbegin();
out << (*it2) - (*it1) << "\n";
}
}
else if(strcmp(cod,"MIN")==0)
{
if(s.size() < 2)
out << -1 << "\n";
else
{
int val_min = -1;
auto it1 = s.begin();
auto aux = it1;
s.erase((*it1));
for(auto it2=s.begin(); it2!=s.end(); it2++)
{
int dif = (*it2) - (*it1);
if(dif < val_min || val_min == -1)
val_min = dif;
it1 = it2;
}
s.insert((*aux));
out << val_min << "\n";
}
}
}
in.close();
out.close();
return 0;
}