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. cin>>n;
  35. for(int i=0;i<n;i++)
  36. {
  37. cin>>coins[i];
  38. }
  39. cin>>amount;
  40. int min_coins=coin_iter(0,amount);
  41. cout<<min_coins<<endl;
  42. if(min_coins>=1000)
  43. cout<<"n"<<endl;
  44. }
Success #stdin #stdout 0.01s 5304KB
stdin
5
9 3 0 5 1
6
stdout
2