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.