Pagini recente » Cod sursa (job #2051470) | Cod sursa (job #1355239) | Cod sursa (job #2942379) | Cod sursa (job #2236979) | Cod sursa (job #1936893)
#include <bits/stdc++.h>
using namespace std;
#define f first
#define s second
ifstream fin( "zeap.in" );
ofstream fout( "zeap.out" );
multiset< int > mip;
set< int > sit;
set< int >::iterator it,it1,it2;
string s;
int x;
const int oo = 1000000001;
int main()
{
sit.insert( -oo );
sit.insert( oo );
mip.insert( oo + oo );
while( fin>>s )
{
if( s[ 0 ] == 'I' )
{
fin>>x;
if( sit.find( x ) != sit.end() ) continue;
auto IT = sit.insert( x );
it = IT.f;
it1 = it2 = it;
it1--;
it2++;
mip.erase( (*it2) - (*it1) );
mip.insert( (*it2) - x );
mip.insert( x - (*it1) );
}
else if( s[ 0 ] == 'S' )
{
fin>>x;
it = sit.find( x );
if( it != sit.end() )
{
it1 = it2 = it;
it1--;
it2++;
mip.erase( (*it2) - x );
mip.erase( x - (*it1) );
mip.insert( (*it2) - (*it1) );
sit.erase( x );
}
else
fout<<-1<<'\n';
}
else if( s[ 0 ] == 'C' )
{
fin>>x;
if( sit.find( x ) == sit.end() )
fout<<0<<'\n';
else
fout<<1<<'\n';
}
else if( s[ 1 ] == 'I' )
{
if( sit.size() >= 2 )
fout<<( *mip.begin() )<<'\n';
else
fout<<-1<<'\n';
}
else
{
if( sit.size() >= 2 )
{
it = sit.begin();
it++;
x = (*it);
it = sit.find( oo );
it--;
x = (*it) - x;
fout<<x<<'\n';
}
else
fout<<-1<<'\n';
}
}
return 0;
}