#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ff first
#define ss second
pair<int, int> dp[1<<20];//idx sum
int a[21], b[21], pre[21];
int main() {
ios::sync_with_stdio(0); cin.tie(0);
int n, m; cin>>n>>m;
for(int i=0; i<n; i++) cin>>a[i];
for(int i=0; i<m; i++) cin>>b[i];
for(int i=0; i<(1<<m); i++) {
dp[i]={0, 0};
for(int j=0; j<m; j++) {
if(i>>j&1) {
int idx=dp[i^1<<j].ff, s=dp[i^1<<j].ss;
if(b[j]+s==a[idx]) {
idx++;
s=0;
} else if(b[j]+s<a[idx]) {
s+=b[j];
}
if(idx==n) {
cout<<"YES";
return 0;
}
dp[i]=max(dp[i], {idx, s});
}
}
}
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... |