Pagini recente » Borderou de evaluare (job #1567956) | Cod sursa (job #3252086) | Cod sursa (job #3222104) | Cod sursa (job #3222103) | Cod sursa (job #1819082)
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.