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.