Cod sursa(job #2751715)

Utilizator andreinichitaTirziu Nichita andreinichita Data 15 mai 2021 17:33:11
Problema Zeap Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.49 kb
#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;
}