int min(int a,int b){
return a>b?b:a;
}
int coinChange(int* coins, int coinsSize, int amount){
int dp[amount+1];
for(int i=0;i<=amount;i++){
dp[i]=10000;
}
dp[0]=0;
for(int i=1;i<=amount;i++){
for(int j=0;j<coinsSize;j++){
if(coins[j]<=i){
int a=min(dp[i],dp[i-coins[j]]+1);
dp[i]=a;
}
}
}
return dp[amount]>amount?-1:dp[amount];
}