Cod sursa(job #3129462)

Utilizator bobic.teona20Bobic Teona-Christiana bobic.teona20 Data 14 mai 2023 18:48:40
Problema Zeap Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.82 kb
#include <bits/stdc++.h>
#define ull unsigned long long
#define ll long long
#define pii pair<int,int>
#define pb push_back
#define mp make_pair
#define F first
#define S second
#define MOD 1000000007
#define MAXN 100005
using namespace std;

bitset<MAXN> used;
vector<int> v;

void insert(int x) {
    if (!used[x]) {
        used[x] = true;
        v.pb(x);
    }
}

int search(int x) {
    if (used[x]) return 1;
    return 0;
}

int remove(int x) {
    if (!used[x]) return -1;
    used[x] = false;
    for (int i = 0; i < v.size(); i++) {
        if (v[i] == x) {
            v.erase(v.begin() + i);
            break;
        }
    }
    return 0;
}

int maxDiff() {
    if (v.size() < 2) return -1;
    sort(v.begin(), v.end());
    int res = 0;
    for (int i = 1; i < v.size(); i++) {
        res = max(res, v[i] - v[i-1]);
    }
    return res;
}

int minDiff() {
    if (v.size() < 2) return -1;
    sort(v.begin(), v.end());
    int res = INT_MAX;
    for (int i = 1; i < v.size(); i++) {
        res = min(res, v[i] - v[i-1]);
    }
    return res;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    freopen("zeap.in", "r", stdin);
    freopen("zeap.out", "w", stdout);
    string s;
    while (getline(cin, s)) {
        if (s[0] == 'I') {
            int x = stoi(s.substr(2));
            insert(x);
        }
        else if (s[0] == 'S') {
            int x = stoi(s.substr(2));
            cout << remove(x) << "\n";
        }
        else if (s[0] == 'C') {
            int x = stoi(s.substr(2));
            cout << search(x) << "\n";
        }
        else if (s == "MAX") {
            cout << maxDiff() << "\n";
        }
        else if (s == "MIN") {
            cout << minDiff() << "\n";
        }
    }
    return 0;
}