Cod sursa(job #2751657)

Utilizator TDV24Tont Dragos-Valentin TDV24 Data 15 mai 2021 15:07:15
Problema Zeap Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.56 kb
#include <iostream>
#include <fstream>
#include <set>
using namespace std;

ifstream f("zeap.in");
ofstream g("zeap.out");

set<int> zeap;

void insereaza(int nr)
{
    if(zeap.find(nr)!=zeap.end())
        zeap.insert(nr);
}

int sterge(int nr)
{
    if(zeap.find(nr)!=zeap.end())
    {
        zeap.erase(nr);
        return 1;
    }
    else
        return -1;
}

int cauta(int nr)
{
    if(zeap.find(nr)!=zeap.end())
        return 1;
    else
        return 0;
}

int dif(string cod)
{
    if(zeap.size()<2)
        return -1;
    if(cod=="MAX")
    {
        set<int>::iterator nr1=zeap.begin(), nr2=zeap.end();
        nr2--;
        return *nr2-*nr1;
    }
    else
    {
        set<int>::iterator nr1=zeap.begin(), nr2=zeap.begin();
        nr2++;
        int dif=100000001;
        for(;nr2!=zeap.end();nr1++, nr2++)
            {
                if(*nr2-*nr1<dif)
                    dif=*nr2-*nr1;
            }
        return dif;
    }
}

int main()
{
    int v, nr;
    string cod;
    while(f>>cod)
    {
        if(cod=="I")
            {
                f>>nr;
                insereaza(nr);
            }
        else if(cod=="S")
            {
                f>>nr;
                v=sterge(nr);
                if(v==-1)
                    g<<v<<"\n";
            }
        else if(cod=="C")
            {
                f>>nr;
                v=cauta(nr);
                g<<v<<"\n";
            }
        else
            v=dif(cod);
            g<<v<<"\n";
    }
    return 0;
}