#include<bits/stdc++.h>
using namespace std;
#define mod 1000000007
#define nmax 2000007
#define fi first
#define se second
#define ll long long
ll t=1,n,m,i,j,d=0,x=0,k=0,y,z,a[nmax],b[nmax],f[nmax];
vector<ll>v[27],v1,v2;
int main()
{
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n>>m;
for(i=1;i<=n;++i)
{
cin>>a[i];
}
for(i=1;i<=m;++i)
{
cin>>b[i];
}
if(n>m)
{
cout<<"NO";
return 0;
}
z=(1<<m);
for(i=0;i<z;++i)
{
for(j=0;j<m;++j)
if((i&(1<<j)))
{
f[i]=f[(i^(1<<j))]+b[j+1];
break;
}
}
for(i=1;i<=n;++i)
{
for(j=1;j<z;++j)
{
if(f[j]==a[i])v[i].push_back(j);
}
}
v1.push_back(0);
for(i=1;i<=n;++i)
{
for(int j:v1)
{
for(int k:v[i])
{
if((j&k)==0)
{
v2.push_back((j^k));
}
}
}
v1=v2;
v2.clear();
}
if(v1.size()>0)cout<<"YES";
else cout<<"NO";
}
| # | 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... |