fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int minCoin(vector<int> &coins, int amount){
  5. int maxVal = amount + 1;
  6.  
  7. vector<int> dp(amount + 1, maxVal);
  8. dp[0] = 0;
  9. for(int a = 1; a <= amount; a++){
  10. for(int c:coins){
  11. if(a - c >= 0){
  12. dp[a] = min(dp[a], 1 + dp[a-c]);
  13. }
  14. }
  15. }
  16. if(dp[amount] != maxVal)
  17. return dp[amount];
  18. else
  19. return -1;
  20. }
  21.  
  22. int main(){
  23. int n, amount;
  24. cin >> n >> amount;
  25.  
  26. vector<int> coins(n);
  27. for(int i = 0; i < n; i++) cin >> coins[i];
  28.  
  29. int result = minCoin(coins, amount);
  30.  
  31. cout << result << endl;
  32. }
  33.  
Success #stdin #stdout 0.01s 5312KB
stdin
3 7
3 4 5
stdout
2