Cod sursa(job #43966)

Utilizator andradaqAndrada Georgescu andradaq Data 30 martie 2007 18:56:37
Problema Reguli Scor 40
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.75 kb
var f:text;
    v,p:array[1..500000] of int64;
    n,i,c,k,q:longint;
    x0,x1:int64;
    s:string;

begin
assign(f,'reguli.in'); reset(f);
readln(f,n);
readln(f,x0);
for i:=1 to n-1 do
 begin
 readln(f,s);
 x1:=0;
 while s<>'' do
  begin
  x1:=x1*10+ord(s[1])-ord('0');
  delete(s,1,1);
  end;
 v[i]:=x1-x0;
 x0:=x1;
 end;
close(f);

p[1]:=0; k:=0;
for q:=2 to n-1 do
  begin
  while (k>0)and(v[k+1]<>v[q]) do
     k:=p[k];
  if v[k+1]=v[q] then inc(k);
  p[q]:=k;
  end;

dec(n);

{l:=n-p[n];
repeat
 r:=n mod l;
 c:=n div l;
 if (p[n-r]>0) and ( (n-r)=(n-r-p[n-r])*c ) then break;
 inc(l);
until 1=0;}

k:=n-p[n];
assign(f,'reguli.out'); rewrite(f);
writeln(f,k);
for i:=1 to k do
 writeln(f,v[i]);
close(f);
end.