Advertisement
Dennnhhhickk

Untitled

Nov 25th, 2016
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. program Main;
  2. const
  3. MAXIN =100000;
  4.  
  5. type
  6. time = record
  7. log: boolean;
  8. ans: integer;
  9. end;
  10.  
  11. var
  12. n, m, i, j, k: integer;
  13. a:array[1..MAXIN] of integer;
  14. dp: array [0..MAXIN] of time;
  15. begin
  16. readln(n, m);
  17. k := 1;
  18.  
  19. for i := 0 to 10000 do
  20. begin
  21. dp[i].log := false;
  22. dp[i].ans := 0;
  23. end;
  24. dp[0].log := true;
  25.  
  26. for i := 1 to n do
  27. read(a[i]);
  28.  
  29. for i := 0 to 10000 do
  30. if (dp[i].log) then
  31. Begin
  32. for j := k to n do
  33. if not(dp[i+a[j]].log) then
  34. begin
  35. dp[i+a[j]].log := true;
  36. dp[i+a[j]].ans := dp[i].ans+1;
  37. end
  38. else
  39. if (dp[i+a[j]].ans> dp[i].ans+ 1) then
  40. dp[i+a[j]].ans := dp[i]. ans +1;
  41. Inc(k);
  42. End;
  43.  
  44.  
  45. if (dp[m].log) then
  46. begin
  47. writeln('YES');
  48. writeln(dp[m].ans);
  49. end
  50. else
  51. writeln('NO');
  52.  
  53.  
  54. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement