Pagini recente » Cod sursa (job #1973262) | Cod sursa (job #2830332) | Cod sursa (job #1373935) | Cod sursa (job #170669) | Cod sursa (job #18122)
Cod sursa(job #18122)
program reguli;
const
fin='reguli.in';
fout='reguli.out';
nmax=500000;
var
a:array[1..nmax] of int64;
num,tmp,n,i,j,k,x:longint;
b:array[1..nmax] of int64;
ok:boolean;
min:longint;
function modulo(x,k:longint):longint;
begin
if x<k then
modulo:=x+1
else
modulo:=1;
end;
begin
assign(input,fin);
reset(input);
readln(n);
for i:=1 to n do
readln(a[i]);
close(input);
assign(output,fout);
rewrite(output);
num:=1;tmp:=1;
ok:=false;
min:=n-1;
b[1]:=a[2]-a[1];
for i:=3 to n do
begin
if ok then
begin
if a[i]-a[i-1]=b[modulo(x,k)] then
begin
x:=modulo(x,k);
end
else
begin
ok:=false;
end;
end
else
begin
if a[i]-a[i-1]=b[1] then
begin
ok:=true;
k:=tmp;
x:=modulo(0,k);
end;
end;
inc(tmp);
b[tmp]:=a[i]-a[i-1];
end;
if ok then
begin
writeln(k);
for i:=1 to k do
writeln(b[i]);
end
else
begin
writeln(tmp);
for i:=1 to tmp do
writeln(b[i]);
end;
close(output);
end.