Pagini recente » Cod sursa (job #1504508) | Cod sursa (job #1593932) | Cod sursa (job #2018610) | Cod sursa (job #369312) | Cod sursa (job #2326526)
#include <iostream>
#include <fstream>
#include <set>
using namespace std;
ifstream si("zeap.in");
ofstream so("zeap.out");
set<int> s;
multiset<int> d;
char v[50];
int main()
{
while(!si.eof()) {
si.getline(v, 50);
//so<<v[0]<<' '<<v[1]<<' '<<v[2];
//so<<v[2];
int nr=0;
if(v[0]!='M') {
int i=2;
while(v[i]>='0'&&v[i]<='9') {
nr=nr*10+v[i]-'0';
//so<<i<<'\n';
++i;
}
}
if(v[0]=='I') {
auto it=s.find(nr);
if(it!=s.end())
continue;
if(s.size()) {
if(nr<*(s.begin())) {
d.insert(*s.begin()-nr);
}
else if(nr>*(s.rbegin())) {
d.insert(nr-*s.rbegin());
} else {
it=s.upper_bound(nr);
auto it2=it;
--it2;
d.erase(*it-*it2);
d.insert(nr-*it2);
d.insert(*it-nr);
}
}
s.insert(nr);
}
if(v[0]=='S') {
auto it=s.find(nr);
if(it==s.end()) {
so<<-1<<'\n';
continue;
}
s.erase(it);
if(nr>*s.rbegin())
d.erase(nr-*s.rbegin());
else
if(nr<*s.begin())
d.erase(*s.begin()-nr);
else
{
it=s.upper_bound(nr);
auto it2=it;
--it2;
d.insert(*it-*it2);
d.erase(d.find(nr-*it2));
d.erase(d.find(*it-nr));
}
}
if(v[0]=='C') {
auto it=s.find(nr);
if(it==s.end())
so<<0<<'\n';
else
so<<1<<'\n';
}
if(v[0]=='M')
if(v[1]=='A') {
if(s.size()>1)
so<<(*s.rbegin()-*s.begin())<<'\n';
else
so<<-1<<'\n';
}
else if(v[1]=='I') {
if(d.size())
so<< *d.begin()<<'\n';
else
so<<-1<<'\n';
}
}
return 0;
}