Submission #954352

# Submission time Handle Problem Language Result Execution time Memory
954352 2024-03-27T16:30:18 Z GasmaskChan Bank (IZhO14_bank) C++17
46 / 100
22 ms 14684 KB
#include <bits/stdc++.h>

using namespace std;
#define int long long
#define MAX 21

int a[MAX], b[MAX];
vector<int> sum[MAX * 1000];

bool f[MAX][1 << MAX], flag;
void dfs(int i, int mask, int &n)
{
    if (i == n)
    {
        flag = true;
        return;
    }
    f[i][mask] = true;
    for (int other : sum[a[i + 1]])
        if ((mask & other) == 0 && !f[i + 1][other])
            dfs(i + 1, other, n);
}

int32_t main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
//    freopen("test.in", "r", stdin); freopen("test.out", "w", stdout);
    int n, m;
    cin >> n >> m;
    for (int i = 1; i <= n; i++) cin >> a[i];
    for (int i = 0; i < m; i++) cin >> b[i];

    for (int s, mask = 0; mask < (1 << m); mask++)
    {
        s = 0;
        for (int j, cur = mask; cur; cur ^= -cur & cur)
        {
            j = __builtin_ctz(cur);
            s += b[j];
        }
        sum[s].push_back(mask);
    }

    dfs(0, 0, n);
    cout << (flag ? "YES\n" : "NO\n");
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2652 KB Output is correct
2 Correct 1 ms 2652 KB Output is correct
3 Correct 1 ms 2652 KB Output is correct
4 Correct 1 ms 3164 KB Output is correct
5 Correct 22 ms 14684 KB Output is correct
6 Correct 1 ms 2652 KB Output is correct
7 Correct 2 ms 2908 KB Output is correct
8 Correct 17 ms 13660 KB Output is correct
9 Correct 17 ms 14172 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2652 KB Output is correct
2 Correct 1 ms 2828 KB Output is correct
3 Correct 1 ms 2652 KB Output is correct
4 Correct 2 ms 2652 KB Output is correct
5 Correct 1 ms 2652 KB Output is correct
6 Correct 1 ms 2652 KB Output is correct
7 Correct 1 ms 2652 KB Output is correct
8 Incorrect 1 ms 2652 KB Output isn't correct
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2904 KB Output is correct
2 Correct 2 ms 2908 KB Output is correct
3 Correct 2 ms 3080 KB Output is correct
4 Correct 1 ms 2908 KB Output is correct
5 Correct 2 ms 2908 KB Output is correct
6 Correct 1 ms 2908 KB Output is correct
7 Correct 2 ms 2908 KB Output is correct
8 Correct 1 ms 2908 KB Output is correct
9 Correct 2 ms 2908 KB Output is correct
10 Correct 2 ms 2908 KB Output is correct
11 Correct 1 ms 2908 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2652 KB Output is correct
2 Correct 1 ms 2652 KB Output is correct
3 Correct 1 ms 2652 KB Output is correct
4 Correct 1 ms 3164 KB Output is correct
5 Correct 22 ms 14684 KB Output is correct
6 Correct 1 ms 2652 KB Output is correct
7 Correct 2 ms 2908 KB Output is correct
8 Correct 17 ms 13660 KB Output is correct
9 Correct 17 ms 14172 KB Output is correct
10 Correct 1 ms 2652 KB Output is correct
11 Correct 1 ms 2828 KB Output is correct
12 Correct 1 ms 2652 KB Output is correct
13 Correct 2 ms 2652 KB Output is correct
14 Correct 1 ms 2652 KB Output is correct
15 Correct 1 ms 2652 KB Output is correct
16 Correct 1 ms 2652 KB Output is correct
17 Incorrect 1 ms 2652 KB Output isn't correct
18 Halted 0 ms 0 KB -