#include<iostream>#include<vector>#include<climits>usingnamespacestd;
intminCoins(vector<int>& coins, int amount){
vector<int> dp(amount + 1, INT_MAX);
dp[0] = 0;
for (int i = 1; i <= amount; ++i) {
for (int j = 0; j < coins.size(); ++j) {
int coin = coins[j];
if (i - coin >= 0 && dp[i - coin] != INT_MAX) {
dp[i] = min(dp[i], dp[i - coin] + 1);
}
}
}
return dp[amount] == INT_MAX ? -1 : dp[amount];
}
intmain(){
int coinArr[] = {1, 2, 5};
vector<int> coins(coinArr, coinArr + sizeof(coinArr) / sizeof(coinArr[0]));
int amount = 11;
int result = minCoins(coins, amount);
if (result != -1) {
cout << "The minimum number of coins needed to make up " << amount << " is: " << result << endl;
} else {
cout << "It's not possible to make up the amount using the given coins." << endl;
}
return0;
}