Cod sursa(job #1819082)

Utilizator ngaibachvantueDioxuanpark ngaibachvantue Data 30 noiembrie 2016 09:54:24
Problema Reguli Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.74 kb
var next:array[0..500001] of longint;
    a,x:array[0..500001] of int64;
    res,n:longint;
procedure nhap;
var i:longint;
begin
 read(n);
 for i:=0 to n-1 do read(x[i]);
 for i:=1 to n-1 do a[i]:=x[i]-x[i-1];
end;
procedure pack;
var j,i:longint;
begin
 j:=0;
 next[1]:=0;
 for i:=2 to n-1 do
  begin
   while (j>0) and (a[j+1]<>a[i]) do j:=next[j];
   if a[j+1]=a[i] then
    begin
     next[i]:=j+1;
     inc(j);
    end
   else next[i]:=0;
  end;
end;
procedure xuli;
var i:longint;
begin
 pack;
 writeln(n-1-next[n-1]);
 for i:=1 to n-1-next[n-1] do writeln(a[i]);
end;
begin
 assign(input,'reguli.in');reset(input);
 assign(output,'reguli.out');rewrite(output);
 nhap;
 xuli;
 close(input); close(output);
end.