#include <bits/stdc++.h>
#define int long long
using namespace std;
int z[1000005];
int t[1000005];
int dp[1<<20];
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int a,b;
cin >> a >> b;
for (int i=1;i<=a;i++){
cin >> z[i];
z[i]=z[i-1]+z[i];
}
for (int i=1;i<=b;i++){
cin >> t[i];
}
dp[0]=true;
for (int i=0;i<(1<<b);i++){
int cur=0;
for (int j=0;j<b;j++){
if (((i>>(j))&1)==1){
cur+=t[j];
}
}
if (!dp[i]){
continue;
}
if (cur==z[a]){
cout << "YES" << "\n";
return 0;
}
int pos=upper_bound(z+1,z+1+a,cur)-z;
for (int j=0;j<b;j++){
if (((i>>(j))&1)==0){
int sad=cur+t[j];
if (sad<=z[pos]){
dp[i|(1<<j)]=true;
}
if (sad==z[a]){
cout << "YES" << "\n";
return 0;
}
}
}
}
cout << "NO" << "\n";
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |