Pagini recente » Cod sursa (job #754173) | Cod sursa (job #597722) | Cod sursa (job #1553462) | Cod sursa (job #803264) | Cod sursa (job #22427)
Cod sursa(job #22427)
var f:text;
v,p:array[1..500000] of int64;
n,i:longint;
x0,x1,l,r,c:int64;
procedure prefix;
var k,q:integer;
begin
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;
end;
begin
assign(f,'reguli.in'); reset(f);
readln(f,n);
readln(f,x0);
for i:=1 to n-1 do
begin
readln(f,x1);
v[i]:=x1-x0;
x0:=x1;
end;
close(f);
prefix;
dec(n);
l:=1;
repeat
r:=n mod l;
c:=n div l;
if (p[n-r]>0) and ( (n-r) mod (n-r-p[n-r]) =0 ) and ( (n-r)=(n-r-p[n-r])*c ) then break;
inc(l);
until 1=0;
assign(f,'reguli.out'); rewrite(f);
writeln(f,l);
for i:=1 to l do
writeln(f,v[i]);
close(f);
end.