Pagini recente » Cod sursa (job #1054522) | Cod sursa (job #2161474) | Cod sursa (job #2928308) | Cod sursa (job #2166120) | Cod sursa (job #2897490)
#include <iostream>
#include <fstream>
#include <set>
using namespace std;
ifstream citeste("zeap.in");
ofstream scrie("zeap.out");
set<int> zeap;
string operatie;
int element;
int dif_min;
void inserare ()
{
citeste >> element;
zeap.insert(element);
}
void stergere ()
{
citeste >> element;
auto ok = zeap.find(element);
if(ok == zeap.end())
scrie << -1 << '\n';
else zeap.erase(element);
}
void cauta ()
{
citeste >> element;
auto ok = zeap.find(element);
if(ok == zeap.end())
scrie << 0 << '\n';
else scrie << 1 << '\n';
}
void maxim ()
{
if (zeap.size() < 2)
scrie << -1 << '\n';
else
{
auto start = zeap.begin();
auto sfarsit = zeap.end();
sfarsit --;
scrie << *sfarsit - *start << '\n';
}
}
void minim ()
{
if (zeap.size() < 2)
scrie << -1 << '\n';
else
{
auto elem = zeap.begin();
auto elemm = zeap.begin();
auto gata = zeap.end();
gata --;
elemm ++;
dif_min = *elemm - *elem;
while (elemm != gata)
{
if(*elemm - *elem < dif_min)
dif_min = *elemm - *elem;
elemm ++;
elem ++;
}
}
scrie << dif_min << '\n';
}
void citire ()
{
while (citeste >> operatie)
{
if (operatie[0] == 'I')
inserare ();
else if (operatie[0] == 'S')
stergere ();
else if (operatie[1] =='A')
maxim();
else if (operatie[1] == 'I')
minim();
else if (operatie[0] == 'C')
cauta();
}
}
int main()
{
citire ();
return 0;
}