Pagini recente » Cod sursa (job #1223644) | Cod sursa (job #118282) | Cod sursa (job #2417299) | Cod sursa (job #2528485) | Cod sursa (job #178583)
Cod sursa(job #178583)
var v:array[0..500001]of int64;
pi:array[0..500001]of longint;
n,i,j,k:longint;
a,b:int64;
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);
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.