Cod sursa(job #178566)
| Utilizator | Data | 14 aprilie 2008 19:25:30 | |
|---|---|---|---|
| Problema | Reguli | Scor | 90 |
| Compilator | fpc | Status | done |
| Runda | Arhiva de probleme | Marime | 0.57 kb |
var v:array[0..500100]of int64;
pi:array[0..500100]of longint;
n,i,j,k:longint;
a,b:int64;
f:text;
begin
assign(f,'reguli.in');
reset(f);
read(f,n);
n:=n-1;
for i:=0 to n do
begin
a:=b;
read(f,b);
v[i]:=b-a;
end;
pi[1]:=0;
close(f);
k:=0;
for i:=2 to n do
begin
while(k>0)and(v[k+1]<>v[i])do
k:=pi[k];
if v[k+1]=v[i] then k:=k+1;
pi[i]:=k;
end;
assign(f,'reguli.out');
rewrite(f);
writeln(f,n-pi[n]);
for i:=1 to n-pi[n] do
writeln(f,v[i]);
close(f);
end.