Pagini recente » Cod sursa (job #665675) | Cod sursa (job #731278) | Cod sursa (job #1838746) | Cod sursa (job #1346000) | Cod sursa (job #895836)
Cod sursa(job #895836)
#include<stdio.h>
#include<fstream>
#include<iostream>
#include<set>
#include<algorithm>
#define Nmax 300002
using namespace std;
char s[10];
set<int> h;
void rezolv()
{
int i,x,maxim;
set<int>::iterator it,it2;
maxim=0;
while(gets(s))
{
if(s[0]=='M')
{
it=h.begin();
if(h.size()<2)
{
printf("-1\n");
continue;
}
if(s[1]=='A')
x=maxim-*it;
else
{
it2=it;
++it2;
x=*it2-*it;
}
if(x<0)
x=-x;
printf("%d\n",x);
}
else
{
x=0;
for(i=2;s[i]!=0;++i)
x=x*10+s[i]-'0';
if(s[0]=='I')
{
h.insert(x);
if(maxim<x)
maxim=x;
continue;
}
if(s[0]=='C')
{
it=h.find(x);
if(*it==x)
printf("1\n");
else
printf("0\n");
continue;
}
it=h.find(x);
if(it==h.end())
printf("-1\n");
else
{
if(*it==maxim)
{
maxim=*h.begin();
for(it2=h.begin();it2!=h.end();++it)
if(maxim<*it2)
maxim=*it2;
}
h.erase(it);
}
}
}
}
int main()
{
freopen("zeap.in","r",stdin);
freopen("zeap.out","w",stdout);
rezolv();
fclose(stdin);
fclose(stdout);
return 0;
}