这道题用毛病吧,输入4 75 \n 24 17 46 2,答案是No anwser,但不是有46+2+2+2+2+17+2+2这种情况吗
//P2001硬币面值
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 2e5 + 10;
int cash[N], way[N], vis[N];
long long n, m;
int dep(int now) {
if (now == 0) return 0;
if (vis[now]) return way[now];
int res = 100000000000;
for (int i = n; i >= 1; i--)
{
if (now >= cash[i] && now >=0 ) {
res = min(res,dep(now - cash[i]));
}
}
vis[now] = 1;
way[now] = res + 1;
//cout << way[now] << endl;
return way[now];
}
int main()
{
cin >> n >> m;
for (int i = 1; i <= n; i++) cin >> cash[i];
sort(cash + 1, cash + 1 + n);
dep(m);
cout << way[m];
return 0;
}