Cod sursa(job #1819130)

Utilizator ngocphuong912kngoc phuong ngocphuong912k Data 30 noiembrie 2016 11:02:44
Problema Reguli Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.72 kb
var  y,x: array[0..500000] of int64;
     kmp: array[0..500000] of longint;
     n: longint;

procedure nhap;
  var i,j: longint;
  begin
    read(n);
    for i:=0 to n-1 do read(x[i]);
    for i:=1 to n-1 do y[i]:=x[i]-x[i-1];
    j:=0;
    kmp[1]:=0;
    for i:=2 to n-1 do
      begin
        while (j>0) and (y[j+1]<>y[i]) do j:=kmp[j];
        if y[i]=y[j+1] then
          begin
            kmp[i]:=j+1;
            inc(j);
          end
        else kmp[i]:=0;
      end;
    writeln(n-kmp[n-1]-1);
    for i:=1 to n-kmp[n-1]-1 do writeln(y[i]);
  end;

begin
  assign(input,'reguli.in');  reset(input);
  assign(output,'reguli.out');  rewrite(output);
  nhap;
  close(input);  close(output);
end.