#include<iostream>
using namespace std;
int x[20];
int n, k, a[20],b=0;
int sum(int num);
void find(int s);
int main() {
cin >> n >> k;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
find(0);
if (b == 0) {
cout << "NO";
}
return 0;
}
int sum(int num) {
int sum1 = 0;
for (int i = 0; i <= num; i++) {
sum1 = sum1 + x[i];
}
return sum1;
}
void find(int s) {
if (s < n&&b != 1) {
for (int i = s; i < n&&b != 1; i++) {
x[s] = a[i];
if (sum(s) < k) {
find(i + 1);
}
if (sum(s) == k) {
cout << "YES";
b = 1;
}
}
}
}
给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K。如果可以,输出:"YES",否则输出"NO"。
最新推荐文章于 2024-03-26 16:21:11 发布