#include<iostream>
#include<stdio.h>
using namespace std;
int m,n,k;
int p[30];
bool flag = false;
void dfs(int money,int num,int index){
if(num==k&&money==0){
flag = true;
return ;
}
if(flag||num>k||index>n){
return;
}
if(money>=p[index]){
dfs(money-p[index],num+1,index+1);
}
dfs(money,num,index+1);
}
int main(){
//freopen("in.txt","r",stdin);
cin>>m>>n>>k;
for(int i=0;i<n;i++){
cin>>p[i];
}
dfs(m,0,0);
if(flag){
cout<<"Yes\n";
}
else{
cout<<"No\n";
}
return 0;
}
计蒜客 买书 dfs剪枝
最新推荐文章于 2021-01-15 12:47:23 发布