제출 #1321628

#제출 시각아이디문제언어결과실행 시간메모리
1321628kutomei3은행 (IZhO14_bank)C++20
71 / 100
1094 ms440 KiB
/**
 * Author: IsryHER
 * Date: 8/2/2569
 */

#include <bits/stdc++.h>
using namespace std;

int n, m;
bool can = false;
void rec(vector<int> vec, int arr[], int cur)
{
    if (cur == n) can = true;

    int vs = vec.size();
    int sz = (1 << vs);
    for (int i = 0; i < sz; i++) {
        int sum = 0;
        for (int j = 0; j < vs; j++) {
            if (i & (1 << j)) sum += vec[j];
        }
        if (sum == arr[cur]) {
            vector<int> p;
            for (int j = 0; j < vs; j++) {
                if (i & (1 << j)) continue;
                p.push_back(vec[j]);
            }
            rec(p, arr, cur + 1);
        }
    }
}

signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    cin >> n >> m;
    int arr[n];
    for (int& p : arr) cin >> p;
    vector<int> ned(m);
    for (auto& p : ned) cin >> p;

    rec(ned, arr, 0);
    cout << (can ? "YES" : "NO");

    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...