Cod sursa(job #2899519)

Utilizator Andoss1710Balanica Andrei Andoss1710 Data 8 mai 2022 21:52:26
Problema Zeap Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.52 kb
#include <iostream>
#include <fstream>
#include <set>
using namespace std;

ifstream fin("zeap.in");
ofstream fout("zeap.out");
set<int> zeap;
int main()
{

    int x,maxim = 0, minim = 1000000001;
    string command;
    while(fin>>command){
        if(command == "I"){
            fin>>x;
            if(x>maxim)
                maxim = x;
            if(x<minim)
                minim = x;
            zeap.insert(x);
        }
        if(command == "S"){
            fin>>x;
            auto s = zeap.find(x);
            if(s != zeap.end())
                zeap.erase(x);
            else fout<<-1<<"\n";

        }
        if(command == "C"){
            fin>>x;
            auto s = zeap.find(x);
            if(s != zeap.end())
                fout<<1<<"\n";
            else fout<<0<<"\n";

        }
        if(command == "MAX"){
                 if(zeap.size() < 2)
                    fout<<-1<<"\n";
        else fout<<maxim-minim<<"\n";
        }
        if(command == "MIN"){
                if(zeap.size() < 2)
                    fout<<-1<<"\n";
            else{
            int dif = 1000000001;
            for (auto val1 = zeap.begin(); next(val1) != zeap.end(); val1++) {
                if(dif > *next(val1)-*val1){
                    //cout<<dif<<" "<<*next(val1)-*(val1)<<endl;
                    dif = *next(val1)-*val1;
                    //cout<<*(val1)<<" "<<*next(val1)<<endl;
                }
            }
        fout<<dif<<"\n";
        }
        }
    }
}