#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int a[26],sum[26]={0};
int flag=0;
void dfs(int s,int k){
if(flag==1)return;
if(abs(s)>sum[k])return;
if(s==0||abs(s)==sum[k]){
flag=1;
return;
}
if(k<0){
return;
}
dfs(s-a[k],k-1);
dfs(s,k-1);
dfs(s+a[k],k-1);
return;
}
int main()
{
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>a[i];
if(i>0)sum[i]=sum[i-1]+a[i];
else sum[0]=a[0];
}
while(m--){
int s;
cin>>s;
flag=0;
dfs(s,n-1);
if(flag==1)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
0.0分
1 人评分
倒杨辉三角形 (C语言代码)浏览:4040 |
简单的a+b (C语言代码)浏览:765 |
A+B for Input-Output Practice (IV) (C语言代码)浏览:551 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:674 |
C语言考试练习题_排列 (C语言代码)浏览:1373 |
C语言训练-求素数问题 (C语言代码)浏览:773 |
WU-整数平均值 (C++代码)浏览:1307 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:672 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:683 |
回文数字 (C语言代码)浏览:2539 |