#include<bits/stdc++.h>
using namespace std;
long long n, m;
long long a[22], b[22];
bool dp[22][(1<<20)+2];
long long sum[(1<<20)+2];
int main()
{
ios_base::sync_with_stdio(0);cin.tie(0);
cin>>n>>m;
for(int i=1; i<=n; i++)cin>>a[i];
for(int i=1; i<=m; i++)cin>>b[i];
for(int mask=0; mask<(1<<m); mask++)
{
for(int i=0; i<m; i++)
{
if(mask&(1<<(i)))sum[mask]+=b[i+1];
}
dp[0][mask]=true;
}
for(int i=1; i<=n; i++)
{
for(int mask=1; mask<(1<<m); mask++)
{
for(int con=mask; con; con=(con-1)&mask)
{
if(sum[con]!=a[i])continue;
if(dp[i-1][mask^con])
{
dp[i][mask]=true;
break;
}
}
}
}
for(int mask=1; mask<(1<<m); mask++)
{
if(dp[n][mask])
{
cout<<"YES";
return 0;
}
}
cout<<"NO";
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... |