文章
40
粉丝
512
获赞
13
访问
371.9k
#include<bits/stdc++.h>
using namespace std;
int const maxn = 10000;
int dp[maxn];
int w[maxn];
int main(){
int s,n;
while(cin>>s>>n){
fill(dp,dp+maxn,10000);
dp[0]=0;
for(int i=0;i<n;i++){
cin>>w[i];
}
for(int i=0;i<n;i++){
for(int j=s;j>=w[i];j--){
if(dp[j-w[i]]!=10000){
dp[j]=min(dp[j],dp[j-w[i]]+1);
}
}
}
if(dp[s]!=10000){
cout<<"YES"<<endl;
}else{
cout<<"NO"<<endl;
}
}
}
登录后发布评论
暂无评论,来抢沙发