Pagini recente » Cod sursa (job #2899756) | Cod sursa (job #532872) | Cod sursa (job #907863) | Cod sursa (job #2216538) | Cod sursa (job #43966)
Cod sursa(job #43966)
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.