已知一个一维数组a[1…n](n<25),已知一整数m。如果是数组a中存在几个元素之和=m,则输出YES,否则输出NO。
输入
第一行 :n m
第二行:n个数,中间用空格隔开
输出
输出YES或NO
样例
样例输入1
4 9
1 2 4 8
样例输出1
YES
代码
#include <bits/stdc++.h>
using namespace std;
int a[101];
int n,m,flag;
void f(int i,int s)
{
if(i==n+1)
{
if(s==m)flag=1;
return;
}
f(i+1,s+a[i]);
f(i+1,s);
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
f(1,0);
if(flag)
{
cout<<"YES";
}
else
{
cout<<"NO";
}
return 0;
}