Cod sursa(job #3135599)

Utilizator sumithesumSumurduc Alexandru sumithesum Data 3 iunie 2023 19:41:18
Problema Zeap Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.39 kb

#include <bits/stdc++.h>

using namespace std;

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

set<int> s;

void sterge(int x ){
   if(s.find(x) == s.end())
       out << -1 << endl;
   else
       s.erase(x);
}
void cauta(long int x){
    out << s.count(x) << endl;
}
void insereaza(int x ){
    if(s.find(x) == s.end())
        s.insert(x);
}
long int max_diff() {
    if (s.size() < 2)
        out << -1 << endl;
    int maxDiff= 0;
    vector<int>z(s.begin(),s.end());
    sort(z.begin(),z.end());
    maxDiff = z[z.size()-1] - z[0];
   out << maxDiff << endl;
}

int MIN_DIFF() {
    if (s.size() < 2)
        return -1;


    int minDiff = INT_MAX;
    vector<int> sortedz(s.begin(),s.end());
    sort(sortedz.begin(), sortedz.end());

    for (size_t i = 1; i < sortedz.size(); i++) {
        int diff = abs(sortedz[i] - sortedz[i - 1]);
        if (diff < minDiff) {
            minDiff = diff;
        }
    }

    out << minDiff << endl;
}


int main() {
    string s;
    int x;
    while (in >> s) {
        if (s == "I") {
            in >> x;
           insereaza(x);
        } else if (s == "S") {
            in >> x;
            sterge(x);
        } else if (s == "C") {
            in >> x;
            cauta(x);
        } else if (s == "MIN")
            max_diff();
        else
            MIN_DIFF();
    }
    return 0;
}