Advertisement
Guest User

Untitled

a guest
Sep 29th, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. program zad_c;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6. SysUtils;
  7.  
  8. const
  9. MAXN = 1000;
  10.  
  11. var
  12. a: array [0..MAXN] of integer;
  13. i, j, m, n, k, ind, ans: integer;
  14.  
  15. procedure rec(sum, ind, k: integer);
  16. begin
  17. if (ind > m) then
  18. exit;
  19. if (sum = n) and (k < ans) then
  20. ans := k
  21. else
  22. if (sum > n) and (ans = maxint) then
  23. ans := 0
  24. else
  25. begin
  26. rec(sum, ind + 1, k);
  27. rec(sum + a[ind], ind + 1, k + 1);
  28. rec(sum + a[ind] * 2, ind + 1, k + 2);
  29. end;
  30. end;
  31.  
  32. begin
  33. read(n, m);
  34. for i := 1 to m do
  35. read(a[i]);
  36. ans := maxint;
  37. rec (0, 1, 0);
  38. if (ans = maxint) then
  39. writeln('-1')
  40. else
  41. writeln(ans);
  42. readln;readln;readln;
  43. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement