Submission #1308503

#TimeUsernameProblemLanguageResultExecution timeMemory
1308503Agageldi은행 (IZhO14_bank)C++20
19 / 100
78 ms16168 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define N 500005

int tc = 1, n, a[N], m, b[N], dp[21][(1<<20)];

int32_t main() {
    ios::sync_with_stdio(0);cin.tie(0);
    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[0][i] = 1;
    }
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < (1 << m); j++) {
            int sm = 0;
            for(int k = 0; k < m; k++) {
                if((j >> k) & 1) sm += b[k];
            }
            if(a[i] == sm) dp[i + 1][j] |= dp[i][((1 << m) - 1) ^ j];
        }
    }
    bool ok = 0;
    for(int i = 0; i < (1 << m); i++) {
        if(dp[n][i]) {
            ok = 1;
            break;
        }
    }
    cout <<(ok == 1? "YES\n" : "NO\n");
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...