fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int coins[100];
  4. int n,amount;
  5. int dp[100][1000];
  6. int coin(int i,int amount)
  7. {
  8. if(i==n)
  9. {
  10. if(amount==0)
  11. return 0;
  12. else
  13. return 1000;
  14. }
  15. if(dp[i][amount]!=-1)
  16. return dp[i][amount];
  17. if(amount>=coins[i])
  18. {
  19. int niye=1+coin(i+1,amount-coins[i]);
  20. int naniye=coin(i+1,amount);
  21. return dp[i][amount]= min(niye,naniye);
  22. }
  23. else
  24. {
  25. return coin(i+1,amount);
  26. }
  27. }
  28. int main()
  29. {
  30.  
  31. cin>>n;
  32. for(int i=0;i<n;i++)
  33. {
  34. cin>>coins[i];
  35. }
  36. cin>>amount;
  37. for(int i=0;i<=n;i++)
  38. {
  39. for(int j=0;j<=amount;j++)
  40. {
  41. dp[i][j]=-1;
  42. }
  43. }
  44. int min=coin(0,amount);
  45. cout<<min<<endl;
  46. }
Success #stdin #stdout 0.01s 5320KB
stdin
7
2 3 5 6 9 12 15
23
stdout
3