Cod sursa(job #2751762)

Utilizator vlad_dimaVlad Dima vlad_dima Data 15 mai 2021 19:15:32
Problema Zeap Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.54 kb
#include <bits/stdc++.h>

using namespace std;

set<int> zeap;
int x;
char comanda[3];

ifstream fin("zeap.in");
ofstream fout("zeap.out");


int main()
{
    while (fin>>comanda)
    {
//        cout<<comanda<<'\n';
//        cout<<1;
        if (!strcmp(comanda,"I"))
        {
            fin>>x;
            zeap.insert(x);
        }
        else if (!strcmp(comanda,"S"))
        {
            fin>>x;
            if (zeap.find(x) == zeap.end())
            {
                int rez = -1;
                fout<<rez<<'\n';
            }
            else
                zeap.erase(x);
        }
        else if (!strcmp(comanda,"C"))
        {
            fin>>x;
            if (zeap.find(x) != zeap.end())
                fout<<1<<'\n';
            else
                fout<<0<<'\n';
        }
        else if (!strcmp(comanda,"MAX"))
        {
            fout<<*(zeap.rbegin()) - *(zeap.begin())<<'\n';
        }
        else
        {
            int anterior = *zeap.begin();
            int dif = std::numeric_limits<int>::max();///valoarea maxima pentru int
            for (auto i = zeap.begin(); i != zeap.end(); i++)
            {
                if (i != zeap.begin())
                {
                    if (dif > *i - anterior)
                        dif = *i - anterior;
                }
            }
            fout<<dif<<'\n';

        }
//        fout<<comanda<<'\n';

    }
//    zeap.insert(3);
//    zeap.erase(10);
//
//    for (auto c: zeap)
//        cout<<c<<' ';

}