题目待补充
#include <iostream>
#include <cstdio>
using namespace std;
int a[1001], n, k;
bool dfs(int i, int sum)
{
if (i == n)
{
return sum == k;//所有都计算完了,看能不能找到
}
if (dfs(i + 1, sum)) return true;//第i+1个数不加
if (dfs(i + 1, sum + a[i])) return true;//加上第i+1个数
return false;
}
void solve()
{
if (dfs(0, 0)) cout << "YES" << endl;
else cout << "NO" << endl;
}
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
cin >> k;
solve();
}