Pagini recente » Cod sursa (job #2686707) | Cod sursa (job #2990441) | Cod sursa (job #1183673) | Borderou de evaluare (job #2012361) | Cod sursa (job #3129457)
#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;
}