Pagini recente » Cod sursa (job #2105372) | Monitorul de evaluare | Statistici Andrei Titus (AndreiTitus10) | Cod sursa (job #2057707) | Cod sursa (job #1819064)
VAR
s,x,z : array[0..500000] of int64 ;
PROCEDURE nhap;
var n,i,l,r,k,j : longint ;
begin
read(n) ;
dec(n) ;
for i := 0 to n do read(x[i]) ;
for i := 0 to n-1 do s[i] := x[i+1] - x[i] ;
dec(n) ;
l := 0 ; r := 0 ;
z[0] := n+1 ;
for i := 1 to n do
if i>r then
begin
l := i ; r := i ;
while (r<=n) and (s[r]=s[r-l]) do inc(r) ;
z[i] := r-l ;
dec(r) ;
end
else
begin
k := i-l ;
if z[k]<(r-i+1) then z[i]:=z[k]
else begin
l := i ;
while (r<=n) and (s[r]=s[r-l]) do inc(r) ;
z[i] := r-l ;
dec(r) ;
end;
end;
for i := 0 to n do
if z[i+1]=n-i then
begin
writeln(i+1) ;
for j := 0 to i do writeln(s[j]) ;
halt;
end;
end;
BEGIN
assign(input,'REGULI.in') ; reset(input) ;
assign(output,'REGULI.out') ; rewrite(output) ;
nhap;
close(input) ; close(output) ;
END.