123456789101112131415161718192021222324252627282930313233343536373839404142 |
- { Source provided for Free Pascal Bug Report 1269 }
- { Submitted by "Rob Kolstad" on 2000-11-28 }
- { e-mail: [email protected] }
- var
- A : array [0..25, 0..100] of comp;
- V : array [1..25] of longint;
- vt, nn : longint;
- i, j : longint;
- function calc(m : longint; n : longint) : comp;
- var i : longint;
- begin
- writeln(m,' ',n, ' ', a[m,n]);
- if A[m, n] <> -1 then begin
- calc := A[m, n]
- end else begin
- if n = 0 then begin
- A[m, n] := 1;
- calc := 1;
- exit;
- end;
- A[m, n] := 0;
- for i := m downto 1 do
- if n - V[i] >= 0 then
- A[m, n] := A[m, n] + calc(i, n - V[i]);
- calc := A[m, n];
- end;
- end;
- begin
- vt := 10;
- nn := 100;
- v[1] := 1; v[2] := 2; v[3] := 3;
- v[4] := 4; v[5] := 5; v[6] := 6;
- v[7] := 7; v[8] := 8; v[9] := 9;
- v[10] := 10;
- for i := 0 to 25 do
- for j := 0 to nn do A[i, j] := -1;
- writeln( calc(vt, nn) :0:0);
- end.
|