제출 #1178689

#제출 시각아이디문제언어결과실행 시간메모리
1178689GoBananas69은행 (IZhO14_bank)C++20
46 / 100
1 ms836 KiB
#include <iostream>
#include <vector>
#include <unordered_set>

using namespace std;

bool solve_dp_optimized(const vector<int>& a, const vector<int>& b) {
    unordered_set<int> possible_sums = {0};
    for (int num : b) {
        unordered_set<int> new_sums;
        for (int sum : possible_sums) {
            new_sums.insert(sum + num);
        }
        for (int sum : new_sums) {
            possible_sums.insert(sum);
        }
    }

    for (int target : a) {
        if (!possible_sums.count(target)) {
            return false;
        }
    }
    return true;
}

int main() {
    int n, m;
    cin >> n >> m;
    vector<int> a(n), b(m);
    for (int &x : a) cin >> x;
    for (int &x : b) cin >> x;

    if (solve_dp_optimized(a, b)) cout << "YES\n";
    else cout << "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...