Cod sursa(job #2896726)

Utilizator RobertuRobert Udrea Robertu Data 30 aprilie 2022 12:57:14
Problema Zeap Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <fstream>
#include <set>
#pragma GCC optimize ("O3")
using namespace std;

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

set<int> bst;

int main() {
    int nr, aux, dif;
    char op[10];

    while(gets(op)) {
        if(op[0] == 'I') {
            fin >> nr;
            bst.insert(nr);
        } else if(op[0] == 'S') {
            fin >> nr;
            aux = bst.size();
            bst.erase(nr);
            if(aux == bst.size()) fout << "-1\n";
        } else if(op[0] == 'C') {
            fin >> nr;
            if(bst.find(nr) == bst.end()) fout << "0\n";
                else fout << "1\n";
        } else if(op[1] == 'A') {
            if(bst.size() < 2) fout << "-1\n";
                else fout << *bst.rbegin() - *bst.begin() << '\n';
        } else {
            if(bst.size() < 2) fout << "-1\n";
                else {
                    set<int>::iterator i = bst.begin();
                    dif = 999999999;
                    aux = *i++;
                    for(; i != bst.end(); i++) {
                        if( *i - aux < dif ) dif = *i - aux;
                        aux = *i;
                    }

                    fout << dif << '\n';
                }
        }
    }

    return 0;
}