LASCALE - Quả Cân
Tác giả: RR
Ngôn ngữ: Pascal
{$MODE OBJFPC}
var
n: integer;
lt, heso: array[0..20] of integer;
procedure gen(i, n: integer);
begin
if (i < 0) then exit;
heso[i] := n div lt[i];
gen(i-1, n mod lt[i]);
end;
procedure solve();
var
i, cnt: integer;
begin
lt[0] := 1;
for i := 1 to 19 do lt[i] := lt[i-1]*3;
gen(19,n);
for i := 0 to 19 do
if (heso[i] > 1) then
begin
dec(heso[i], 3);
inc(heso[i+1]);
end;
cnt := 0; for i := 0 to 19 do if (heso[i]<0) then inc(cnt);
write(cnt); for i := 0 to 19 do if (heso[i]<0) then write(' ',lt[i]); writeln;
cnt := 0; for i := 0 to 19 do if (heso[i]>0) then inc(cnt);
write(cnt); for i := 0 to 19 do if (heso[i]>0) then write(' ',lt[i]); writeln;
end;
begin
read(n);
solve();
end.