Pagini recente » Cod sursa (job #290034) | Cod sursa (job #2753172) | Cod sursa (job #1995626) | Cod sursa (job #2405374) | Cod sursa (job #78796)
Cod sursa(job #78796)
program reguli;
const
fin='reguli.in';
fout='reguli.out';
var
a:array[1..500000] of int64;
pi:array[1..500000] of longint;
d,q,i,c,r,j,k,n,x,y:longint;
t1,t2:int64;
ok:array[1..500000] of boolean;
begin
assign(input,fin);
reset(input);
readln(n);
readln(t1,t2);
a[1]:=t2-t1;
for i:=3 to n do
begin
readln(t1);
t1:=t1 xor t2;
t2:=t1 xor t2;
t1:=t1 xor t2;
a[i-1]:=t2-t1;
end;
dec(n);
close(input);
assign(output,fout);
rewrite(output);
k:=0;
pi[1]:=0;
for q:=2 to n do
begin
while (k>0) and (a[k+1]<>a[q]) do
k:=pi[k];
if a[k+1]=a[q] then
inc(k);
pi[q]:=k;
end;
k:=n;
while k>0 do
begin
ok[pi[k]]:=true;
k:=pi[k];
end;
for d:=1 to n do
begin
r:=n mod d;
c:=n div d;
if n-r-pi[n-r]<>0 then
if ((n-r) mod (n-r-pi[n-r])=0)and((n-r)div(n-r-pi[n-r])=c) then
begin
writeln(d);
for i:=1 to d do
writeln(a[i]);
break;
end;
end;
close(output);
end.