Cod sursa(job #108505)

Utilizator RobybrasovRobert Hangu Robybrasov Data 22 noiembrie 2007 19:59:20
Problema Zeap Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.39 kb
var v:array[0..100000000] of 0..1000000000;
    min,max,sub,nr:longint;
    c,t:char;
    f,g:text;

procedure insereaza(k:integer);
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]:=k;
end;

procedure cauta(k:longint);
begin
  if v[k]=k 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
      read(f,c);
      {
      case c of
        'm': begin
               read(f,c);
               if c='a' then writeln(g,max-min)
               else writeln(g,max-sub);
               readln(f,c);
             end;
        'i': begin readln(f,nr); insereaza(nr); end;
        's': begin readln(f,nr); sterge(nr); end;
        'c': begin readln(f,nr); cauta(nr); end;
      end;
      }
      if c='i' then begin readln(f,nr); insereaza(nr); end;
      if c='s' then begin readln(f,nr); sterge(nr); end;
      if c='c' then begin readln(f,nr); cauta(nr); end;
      if c='m' then
        begin
          read(f,t);
          if t='a' then writeln(g,max-min)
          else writeln(g,max-sub);
          readln(f,t);
        end;
    end;
  close(f);
  close(g);
end.