Submission #1279572

#TimeUsernameProblemLanguageResultExecution timeMemory
1279572traktor74Bank (IZhO14_bank)C++20
100 / 100
144 ms4544 KiB
#include<bits/stdc++.h>

using namespace std;

int const maxn = 20;
int a[maxn], b[maxn], dp[(1 << maxn)];

main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.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 = 1; i < n; i++) a[i] += a[i - 1];
    for (int mask = 0; mask < (1 << m); mask++) {
        int sum = 0;
        for (int i = 0; i < m; i++) {
            if ((mask>>i)&1) sum += b[i];
        }
        for (int i = 0; i < m; i++) {
            if ((mask>>i)&1) continue;
            if (sum + b[i] == a[dp[mask]]) dp[mask|(1 << i)] = dp[mask] + 1;
            else dp[mask|(1 << i)] = max(dp[mask|(1 << i)], dp[mask]);
        }
    }
    if (dp[(1 << m) - 1] == n) cout << "YES\n";
    else cout << "NO\n";
    return 0;
}

Compilation message (stderr)

bank.cpp:8:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    8 | main() {
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...