Pagini recente » Cod sursa (job #1411698) | Cod sursa (job #2691538) | Cod sursa (job #125481) | Cod sursa (job #59895) | Cod sursa (job #2896704)
#include <fstream>
#include <string>
#include <set>
using namespace std;
ifstream fin("zeap.in");
ofstream fout("zeap.out");
set<int> bst;
string op;
int main() {
int nr, aux, dif;
while(fin >> op) {
if(op[0] == 'I') {
fin >> nr;
bst.insert(nr);
} else if(op[0] == 'S') {
fin >> nr;
aux = bst.size();
bst.erase(nr);
if(aux == bst.size()) fout << "-1\n";
} else if(op[0] == 'C') {
fin >> nr;
if(bst.find(nr) == bst.end()) fout << "0\n";
else fout << "1\n";
} else if(op[1] == 'A') {
if(bst.size() < 2) fout << "-1\n";
else fout << *bst.rbegin() - *bst.begin() << '\n';
} else {
if(bst.size() < 2) fout << "-1\n";
else {
set<int>::iterator i = bst.begin();
dif = 999999999;
aux = *i++;
for(; i != bst.end(); i++) {
if( *i - aux < dif ) dif = *i - aux;
aux = *i;
}
fout << dif << '\n';
}
}
}
return 0;
}