Pagini recente » Cod sursa (job #1442390) | Cod sursa (job #191503) | Cod sursa (job #1520398) | Cod sursa (job #396966) | Cod sursa (job #483945)
Cod sursa(job #483945)
#include <cstdio>
#include <set>
#include <algorithm>
using namespace std;
#define file_in "zeap.in"
#define file_out "zeap.out"
#define nmax 303001
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++;
}
ok=0;
set<int> :: iterator it;
for (it=Zeap.begin();it!=Zeap.end();++it)
if (*it==x)
ok=1;
if (!ok)
Zeap.insert(x);
continue;
}
if (s[0]=='S'){//sterg
i=2;
x=0;
while(s[i]>='0' && s[i]<='9'){
x=x*10+s[i]-'0';
i++;
}
ok=0;
set<int> :: iterator it;
for (it=Zeap.begin();it!=Zeap.end();++it)
if (*it==x){
Zeap.erase(*it);
ok=1;
break;
}
if (!ok)
printf("-1\n");
}
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.find(x))
printf("1\n");
else
printf("0\n");
}
if (s[0]=='M' && s[1]=='I'){//minimu`
if (Zeap.size()<2)
printf("-1\n");
else{
min1=0x3f3f3f3f;
min2=0x3f3f3f3f;
set<int> :: iterator it;
for (it=Zeap.begin();it!=Zeap.end();++it)
if (*it<min1)
min1=*it;
for (it=Zeap.begin();it!=Zeap.end();++it)
if (*it<min2 && min1!=*it)
min2=*it;
//printf("%d %d\n", min1,min2);
printf("%d\n", (min2-min1));
}
}
if (s[0]=='M' && s[1]=='A'){//minimu`
if (Zeap.size()<2)
printf("-1\n");
else{
min1=0x3f3f3f3f;
max2=0;
set<int> :: iterator it;
for (it=Zeap.begin();it!=Zeap.end();++it)
if (*it<min1)
min1=*it;
for (it=Zeap.begin();it!=Zeap.end();++it)
if (*it>max2)
max2=*it;
//printf("%d %d\n", min1,max2);
printf("%d\n", (max2-min1));
}
}
}
}
int main(){
adfile();
solve();
return 0;
}