Pagini recente » Cod sursa (job #171481) | Cod sursa (job #1334554) | Cod sursa (job #2906021) | Cod sursa (job #492812) | Cod sursa (job #178596)
Cod sursa(job #178596)
var v:array[0..500001]of int64;
pi:array[0..500001]of longint;
n,i,j,k:longint;
a,b:int64;
x:integer;
s:string;
f:text;
begin
{citire+diferente}
assign(f,'reguli.in');
reset(f);
readln(f,n);
dec(n);
for i:=0 to n do
begin
a:=b;
//parsarea citirii
b:=0;
readln(f,s);
k:=length(s);
if s[1]='-' then begin for j:=2 to k do
b:=b*10+ord(s[j])-48;
b:=b*-1;
end
else for j:=1 to k do
b:=b*10+ord(s[j])-48;
v[i]:=b-a;
end;
close(f);
{prefix}
pi[1]:=0;
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 inc(k);
pi[i]:=k;
end;
{afisare}
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.