Cod sursa(job #577862)

Utilizator alinhAlin H alinh Data 10 aprilie 2011 18:15:58
Problema Reguli Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.37 kb

const
  fi = 'reguli.in';
  fo = 'reguli.out';

var
  f : text;
  a : array [1..50000] of int64;
  tag : array [0..50000] of boolean;
  ka : word = 0;
  sk : word = 0;

  gasit : boolean = false;

  xp, xc : int64;
  n,i,j : word;

procedure citire;
  begin
    assign(f,fi);
    reset(f);
    read(f,n);
    for i:=0 to n do
      tag[i] := false;
    read(f,xp);
    for i:=1 to n-1 do
      begin
        read(f,xc);
        inc(ka);
        a[ka] := xc - xp;
        xp := xc;
        if ka<>1 then
        if tag[ka-1] then
          begin
            if a[ka] = a[ka-sk] then
              begin
                tag[ka] := true;
                tag[ka-sk] := true;
                if tag[ka-sk+1] = true then
                  begin
                    gasit := true;
                    break;
                  end;
              end
            else
              for j:=1 to ka-1 do
                tag[i] := false;
          end
        else
          if a[ka] = a[1] then
            begin
              sk := ka-1;
              tag[ka] := true;
              tag[1] := true;
            end;
      end;
    close(f);
  end;

procedure tiparire;
  begin
    assign(f,fo);
    rewrite(f);
    writeln(f,ka-sk);
    for i:=1 to ka-sk do
      writeln(f,a[i]);
    close(f);
  end;

begin
  citire;
  tiparire;
end.