#include <iostream>
#include <vector>
#include <bitset>
using namespace std;
bool solve(const vector<int>& a, const vector<int>& b) {
const int MAX_SUM = 1e6;
bitset<MAX_SUM + 1> dp;
dp[0] = 1;
for (int num : b) {
dp |= (dp << num);
}
for (int target : a) {
if (target > MAX_SUM || !dp[target]) {
return false;
}
}
return true;
}
int main() {
int n, m;
cin >> n >> m;
vector<int> a(n), b(m);
for (int &x : a) cin >> x;
for (int &x : b) cin >> x;
if (solve(a, b)) cout << "YES\n";
else 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... |