Cod sursa(job #3129457)

Utilizator bobic.teona20Bobic Teona-Christiana bobic.teona20 Data 14 mai 2023 18:18:56
Problema Zeap Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.69 kb
#include <bits/stdc++.h>
using namespace std;

set<int> Z;

int main() {
    freopen("zeap.in", "r", stdin);
    freopen("zeap.out", "w", stdout);

    int Q;
    scanf("%d", &Q);

    while (Q--) {
        char op;
        int x;
        scanf(" %c %d", &op, &x);

        if (op == 'I') {
            Z.insert(x);
        } else if (op == 'S') {
            if (Z.erase(x)) {
                printf("0\n");
            } else {
                printf("-1\n");
            }
        } else if (op == 'C') {
            if (Z.count(x)) {
                printf("1\n");
            } else {
                printf("0\n");
            }
        } else if (op == 'M') {
            if (Z.size() < 2) {
                printf("-1\n");
            } else {
                int min_dif = INT_MAX, max_dif = INT_MIN;
                int prev = *Z.begin();
                for (int cur : Z) {
                    if (cur != prev) {
                        min_dif = min(min_dif, cur - prev);
                        max_dif = max(max_dif, cur - prev);
                        prev = cur;
                    }
                }
                printf("%d\n", max_dif);
            }
        } else if (op == 'N') {
            if (Z.size() < 2) {
                printf("-1\n");
            } else {
                int min_dif = INT_MAX;
                int prev = *Z.begin();
                for (int cur : Z) {
                    if (cur != prev) {
                        min_dif = min(min_dif, cur - prev);
                        prev = cur;
                    }
                }
                printf("%d\n", min_dif);
            }
        }
    }

    return 0;
}