Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program bank;
- {$APPTYPE CONSOLE}
- uses
- SysUtils;
- const
- inf = maxint;
- var
- dp, prev: array[0..1000000] of integer;
- a: array[1..300] of integer;
- n, s, j, i:integer;
- begin
- readln(n);
- for i := 1 to n do
- begin
- read(a[i]);
- dp[a[i]] := 1;
- prev[a[i]] := a[i];
- end;
- readln(s);
- for i := 1 to s do
- if (dp[i] = 0) then dp[i] := inf;
- for i := 1 to s do
- begin
- for j := 1 to n do
- begin
- if (i - a[j] > 0) and (dp[i - a[j]] < dp[i] - 1)
- and (dp[i - a[j]] <> inf) then
- begin
- dp[i] := dp[i - a[j]] + 1;
- prev[i] := a[j];
- end;
- end;
- end;
- writeln(dp[s]);
- j := s;
- for i := 1 to s do
- write(dp[i],' ');
- writeln;
- for i := dp[s] downto 1 do
- begin
- write(prev[j],' ');
- j := j - prev[j];
- end;
- readln;
- readln;
- end.
- //5
- //1 3 7 12 32
- //40
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement