Pagini recente » Cod sursa (job #2023600) | Cod sursa (job #1299569) | Istoria paginii utilizator/rolandpetrean | Cod sursa (job #1900609) | Cod sursa (job #483952)
Cod sursa(job #483952)
#include <cstdio>
#include <set>
#include <algorithm>
using namespace std;
#define file_in "zeap.in"
#define file_out "zeap.out"
#define nmax 100
char s[nmax];
set<int> Zeap;
void adfile(void){
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
return ;
}
void solve(void){
int i,x,ok,l;
int min1,min2;
int max1,max2;
while(fgets(s,nmax,stdin)){
l=strlen(s);
if (s[0]=='I'){//inserez
i=2;
x=0;
while(s[i]>='0' && s[i]<='9'){
x=x*10+s[i]-'0';
i++;
}
Zeap.insert(x);
}
if (s[0]=='S'){//sterg
i=2;
x=0;
while(s[i]>='0' && s[i]<='9'){
x=x*10+s[i]-'0';
i++;
}
if (Zeap.size()==0)
printf("-1\n");
else{
set<int> :: iterator it;
it=Zeap.find(x);
if (it==Zeap.end())
printf("-1\n");
else
Zeap.erase(x);
}
}
if (s[0]=='C'){//caut
i=2;
x=0;
while(s[i]>='0' && s[i]<='9'){
x=x*10+s[i]-'0';
i++;
}
if (Zeap.size()==0)
printf("-1\n");
else{
set<int> :: iterator it;
it=Zeap.find(x);
if (it==Zeap.end())
printf("0\n");
else
printf("1\n");
}
}
if (s[0]=='M' && s[1]=='I'){//minimu`
if (Zeap.size()<2)
printf("-1\n");
else{
int minim=0x3f3f3f3f;
set<int> :: iterator it;
set<int> :: iterator it2;
it2=Zeap.begin();
it2++;
for (it=Zeap.begin();it2!=Zeap.end();++it,++it2){
if (*it2-*it==1){
minim=1;
break;
}
else
if (*it2-*it<=minim)
minim=*it2-*it;
}
printf("%d\n", minim);
}
}
if (s[0]=='M' && s[1]=='A'){//maximu`
if (Zeap.size()<2)
printf("-1\n");
else{
int val=0;
set<int> :: iterator it;
it=Zeap.begin();
val=*it;
it=Zeap.end();
it--;
val=*it-val;
printf("%d\n",val);
}
}
}
}
int main(){
adfile();
solve();
return 0;
}