Pagini recente » Cod sursa (job #1283682) | Cod sursa (job #2360682) | Cod sursa (job #2715242) | Cod sursa (job #2598953) | Cod sursa (job #2750900)
#include <fstream>
#include <unordered_set>
#include <set>
#include <string.h>
using namespace std;
ifstream in("zeap.in");
ofstream out("zeap.out");
unordered_set<int> s;
set<int> q;
int parsenr(char l[20]){
int x=0;
int i=2;
while(l[i]>=48 && l[i]<=57){
x=x*10+(int)l[i]-48;
++i;
}
return x;
}
int main(){
FILE * xin;
char lin[20];
int x;
xin = fopen("zeap.in", "r");
while(fgets(lin, 20, xin) != NULL){
if(lin[0]=='I'){
x=parsenr(lin);
s.insert(x);
q.insert(x);
}
if(lin[0]=='S'){
x=parsenr(lin);
if(s.find(x)!=s.end()){
s.erase(x);
q.erase(x);
}
else{
out<<"-1"<<'\n';
}
}
if(lin[0]=='C'){
x=parsenr(lin);
if(s.find(x)!=s.end()){
out<<"1"<<'\n';
}
else{
out<<"0"<<'\n';
}
}
if(lin[1]=='A'){
if(s.size()<2){
out<<"-1"<<'\n';
}
else{
out<<*q.rbegin()-*q.begin()<<'\n';
}
}
if(lin[1]=='I'){
if(s.size()<2){
out<<"-1"<<'\n';
}
else{
int mi=245000;
auto r=q.begin();
r++;
auto ri=r;
r--;
while(ri!=q.end()){
if(*ri-*r<mi){
mi=*ri-*r;
}
if(mi==1){
break;
}
r++;
ri++;
}
out<<mi<<'\n';
}
}
}
}