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_Iter(int i,int amount)
  7. {
  8. for(int j=0;j<=amount;j++)
  9. {
  10. dp[n][j]=1000;
  11. }
  12. for(int i=0;i<=n;i++)
  13. {
  14. dp[i][0]=0;
  15. }
  16. for(int i=n-1;i>=0;i--)
  17. {
  18. for(int j=1;j<=amount;j++)
  19. {
  20. if(j>=coins[i])
  21. {
  22. dp[i][j]=min(1+dp[i+1][j-coins[i]],dp[i+1][j]);
  23. }
  24. else
  25. {
  26. dp[i][j]=dp[i+1][j];
  27. }
  28. }
  29. }
  30. return dp[0][amount];
  31. }
  32. int main()
  33. {
  34.  
  35. cin>>n;
  36. for(int i=0;i<n;i++)
  37. {
  38. cin>>coins[i];
  39. }
  40. cin>>amount;
  41. int min=coin_Iter(0,amount);
  42. cout<<min<<endl;
  43. }
Success #stdin #stdout 0.01s 5272KB
stdin
7
2 3 5 6 9 12 15
23
stdout
3