#include <bits/stdc++.h>
#define int int64_t
using namespace std;
int n, m;
vector<vector<int>> pub;
vector<int> a, b;
bool rec(int cnt, int cur){
if(cur == n) return true;
for(auto &i : pub[cur]){
if((cnt & i) == 0){
if(rec(cnt | i, cur + 1)) return true;
}
}
return false;
}
void solve(){
cin >> n >> m; pub.assign(n, vector<int>());
a.resize(n); b.resize(m);
for(auto &i : a) cin >> i;
for(auto &i : b) cin >> i;
for(int i = 0; i < (1LL << m); i++){
int sum = 0;
for(int j = 0; j < m; j++){
if(i & (1LL << j)){
sum += b[j];
}
}
for(int j = 0; j < n; j++){
if(sum == a[j]){
pub[j].push_back(i);
}
}
}
if(rec(0, 0)){
cout << "YES\n";
} else {
cout << "NO\n";
}
}
signed main(){
cin.tie(0)->sync_with_stdio(0);
int _ = 1;// cin >> _; cout.tie(0);
while(_--) solve();
}
| # | 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... |