http://acm.pku.edu.cn/JudgeOnline/problem?id=1221
Код:
var j,o:array[0..255,0..255]of qword;
g:array[0..255]of qword;
f:array[0..2,0..255]of qword;
n:byte;
procedure init;
var i,k,l:longint;
begin
fillchar(j,sizeof(j),0);
fillchar(o,sizeof(o),0);
fillchar(g,sizeof(g),0);
fillchar(f,sizeof(f),0);
o[1,0]:=1;
for n:=1 to 250 do begin
for i:=1 to n do
for k:=1 to i do
inc(j[i,n],o[k,n-i]);
for i:=1 to n do o[i,n]:=j[i,n-i];
for i:=0 to n do inc(f[1,n],j[i,n]);
for i:=0 to n do inc(f[2,n],o[i,n]);
g[n]:=f[1,n]+f[2,n];
end;
end;
begin
init;
readln(n);
while n<>0 do begin
writeln(n,' ',g[n]);
readln(n)
end;
end.