#include <iostream>
using namespace std;
int a[1000];
int n, k;
bool dfs(int i, int sum) {
if (i == n)return sum == k; //
if (dfs(i + 1, sum))return 1;
if (dfs(i + 1, sum + a[i]))return 1;
return 0;
}
void solve() {
if (dfs(0, 0))cout << "yes";
else cout << "no";
}
int main() {
cin >> n >> k;
for (int i = 0; i <n; ++i) { 注意当结束条件是i==n时,这里索引必须从0开始。
cin >> a[i];
}
solve();
}

被折叠的 条评论
为什么被折叠?



