#include<bits/stdc++.h>
using namespace std;
int coinChange(int A[],int n,int m)
{
int *f=new int[m+1];
f[0]=0;
int i,j;
for(i=1;i<=m;i++)
{
f[i]=INT_MAX;
for(j=0;j<n;j++)
{
if(i>=A[j]&&f[i-A[j]]!=INT_MAX)
{
f[i]=min(f[i-A[j]]+1,f[i]);
}
}
}
if(f[m]==INT_MAX)
{
f[m]=-1;
}
return f[m];
}
int main()
{
int n,m;
cin>>n>>m;
int*a=new int[n];
for(int i=0;i<n;i++)
{
cin>>a[i];
}
cout<<coinChange(a,n,m);
return 0;
}
转载请注明原文地址:https://blackberry.8miu.com/read-17303.html