Cod sursa(job #108531)

Utilizator RobybrasovRobert Hangu Robybrasov Data 22 noiembrie 2007 20:50:05
Problema Zeap Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.06 kb
var v:array[0..1000000000] of byte;
    min,max,sub,nr:longint;
    s,s1:string;
    c,p:integer;
    f,g:text;

procedure insereaza(k:longint);
begin
  if k>=max then begin sub:=max; max:=k; end
  else if k>sub then sub:=k;
  if k<min then min:=k;
  if v[k]=0 then v[k]:=1;
end;

procedure cauta(k:longint);
begin
  if v[k]=1 then writeln(g,1)
  else writeln(g,0);
end;

procedure sterge(k:longint);
begin
  if v[k]=0 then writeln(g,-1)
  else v[k]:=0;
end;

begin
  assign(f,'zeap.in');
  reset(f);
  assign(g,'zeap.out');
  rewrite(g);
  min:=0; max:=0; sub:=0; nr:=0;
  while not seekeof(f) do
    begin
      readln(f,s);
      if s[1]<>'m' then
        begin
          p:=3;
          while s[p]<>' ' do inc(p);
          s1:=copy(s,3,p-3);
          val(s1,nr,c);
          case s[1] of
            'I': insereaza(nr);
            'S': sterge(nr);
            'C': cauta(nr);
          end;
        end
      else
        if s[2]='A' then writeln(g,max-min)
        else writeln(g,max-sub);
    end;
  close(f);
  close(g);
end.