Pagini recente » Cod sursa (job #1808724) | Cod sursa (job #2531943) | Cod sursa (job #2069068) | Cod sursa (job #497979) | Cod sursa (job #2752069)
#include <iostream>
#include <set>
#include <fstream>
#include <vector>
using namespace std;
int findMax(set<int> my_set)
{
int max_element;
if (!my_set.empty())
max_element = *(my_set.rbegin());
return max_element;
}
int findMin(set<int> my_set)
{
int min_element;
if (!my_set.empty())
min_element = *my_set.begin();
return min_element;
}
int minim( vector < int > v ){
int dif = 1000000000;
for( int i = 0; i < v.size(); i++ ){
for( int j = i; j < v.size(); j++ ){
if( v[i] != -1 && v[j] != -1 ){
if( v[i] > v[j] && v[i] - v[j] < dif ) dif = v[i] - v[j];
else{
if( v[i] < v[j] && v[j] - v[i] < dif ) dif = v[j] - v[i];
}
}
}
}
return dif;
}
int main(){
set < int > cautare;
vector < int > numere;
ifstream fin("zeap.in");
ofstream fout("zeap.out");
string operatie;
while( fin >> operatie ){
if( operatie == "I" ){
int x;
fin >> x;
numere.push_back(x);
cautare.insert(x);
}
if( operatie == "S" ){
int x;
fin >> x;
if( cautare.count(x) == 0 ) fout << -1 << endl;
else{
for(int i = 0; i < numere.size(); i++ ){
if( numere[i] == x ) numere[i] = -1;
}
cautare.erase(x);
}
}
if( operatie == "C" ){
int x;
fin >> x;
fout << cautare.count(x) << endl;
}
if( operatie == "MAX" ){
if( cautare.size() < 2 ) fout << -1 << endl;
else{
fout << findMax(cautare) - findMin(cautare) << endl;
}
}
if( operatie == "MIN" ){
fout << minim(numere) << endl;
}
}
}