제출 #1273233

#제출 시각아이디문제언어결과실행 시간메모리
1273233arkanefury은행 (IZhO14_bank)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;

int N, M;
vector<int> a, b;
vector<vector<int>> candidates;
unordered_map<int, bool> memo;

bool dfs(int i, int used) {
    if (i == (int)a.size()) return true;
    long long key = ((long long)i << 20) | used; 
    if (memo.count(key)) return memo[key];

    for (int mask : candidates[i]) {
        if ((used & mask) == 0) {=
            if (dfs(i + 1, used | mask))
                return memo[key] = true;
        }
    }
    return memo[key] = false;
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    cin >> N >> M;
    a.resize(N);
    b.resize(M);

    for (int i = 0; i < N; i++) cin >> a[i];
    for (int j = 0; j < M; j++) cin >> b[j];

    sort(a.rbegin(), a.rend()); =

    vector<int> subsetSum(1 << M, 0);
    for (int mask = 1; mask < (1 << M); mask++) {
        int j = __builtin_ctz(mask);
        subsetSum[mask] = subsetSum[mask ^ (1 << j)] + b[j];
    }
    candidates.resize(N);
    for (int i = 0; i < N; i++) {
        for (int mask = 1; mask < (1 << M); mask++) {
            if (subsetSum[mask] == a[i]) {
                candidates[i].push_back(mask);
            }
        }
        if (candidates[i].empty()) {
            cout << "NO\n";
            return 0;
        }
    }

    cout << (dfs(0, 0) ? "YES\n" : "NO\n");
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

bank.cpp: In function 'bool dfs(int, int)':
bank.cpp:15:34: error: expected primary-expression before '=' token
   15 |         if ((used & mask) == 0) {=
      |                                  ^
bank.cpp:16:13: error: expected primary-expression before 'if'
   16 |             if (dfs(i + 1, used | mask))
      |             ^~
bank.cpp: In function 'int main()':
bank.cpp:34:33: error: expected primary-expression before '=' token
   34 |     sort(a.rbegin(), a.rend()); =
      |                                 ^
bank.cpp:36:17: error: expected primary-expression before 'subsetSum'
   36 |     vector<int> subsetSum(1 << M, 0);
      |                 ^~~~~~~~~
bank.cpp:39:9: error: 'subsetSum' was not declared in this scope
   39 |         subsetSum[mask] = subsetSum[mask ^ (1 << j)] + b[j];
      |         ^~~~~~~~~
bank.cpp:44:17: error: 'subsetSum' was not declared in this scope
   44 |             if (subsetSum[mask] == a[i]) {
      |                 ^~~~~~~~~