#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剪枝
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.