Pagini recente » Cod sursa (job #2332085) | Cod sursa (job #2220870) | Cod sursa (job #966928) | Cod sursa (job #1406736) | Cod sursa (job #221824)
Cod sursa(job #221824)
#include <cstdio>
#include <cstdlib>
#include <vector>
#include <set>
#include <cstring>
#include <algorithm>
#define oo 1000100000
using namespace std;
set<int> S;
void del(int val){
set<int>::iterator it;
it=S.find(val);
if (it==S.end()){
printf("-1\n");
return;
}
S.erase(it);
}
void search(int val){
set<int>::iterator it;
it=S.find(val);
it==S.end()?printf("0\n"):printf("1\n");
}
void MAX(){
set<int>::iterator it,it2;
if (S.size()<2){
printf("-1\n");
return;
}
it=S.end();--it;
it2=S.begin();//printf("MAX %d %d\n",*it2,*it);
printf("%d\n",*it-*it2);
}
void MIN(){
set<int>::iterator it1,it2;
int minim=oo;
if (S.size()<2){
printf("-1\n");
return;
}
it2=S.begin();++it2;
for (;it2!=S.end();++it2){
it1=it2;
--it1;
minim=min(minim,*it2-*it1);
}
printf("%d\n",minim);
}
main(){
char s[30],type;
int val,i;
freopen("zeap.in","r",stdin);
freopen("zeap.out","w",stdout);
while (gets(s)){
if (strcmp(s,"MAX")==0)
MAX();
else
if (strcmp(s,"MIN")==0)
MIN();
else{
type=s[0];val=0;
for (i=2;s[i]>='0' && s[i]<='9';++i)
val=val*10+s[i]-'0';
if (type=='I')
S.insert(val);
else
if (type=='S')
del(val);
else
search(val);
}
}
}