Pagini recente » Cod sursa (job #2747296) | Cod sursa (job #231130) | Cod sursa (job #382927) | Cod sursa (job #2451978) | Cod sursa (job #3135600)
#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);
}
void 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;
}
void MIN_DIFF() {
if (s.size() < 2)
out << -1 << endl;
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;
}