제출 #1261544

#제출 시각아이디문제언어결과실행 시간메모리
1261544sohamsen15은행 (IZhO14_bank)C++20
71 / 100
1093 ms788 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n, m; cin >> n >> m; vector<int> a(n); for (auto &x: a) cin >> x; vector<int> b(m); for (auto &x: b) cin >> x; map<pair<int, vector<int>>, bool> memo; function<bool(int, vector<int>)> solve = [&](int n, vector<int> s) -> bool { if (n == -1) return true; if (memo.count({n, s})) return memo[{n, s}]; int len = s.size(); int elem = a[n]; bool ans = false; for (int i = 0; i < pow(2, len); i++) { vector<int> subset; int sum = 0; for (int j = 0; j < len; j++) if ((i >> j) % 2 == 0) subset.push_back(s[j]); else sum += s[j]; if (sum == elem) ans = ans | solve(n - 1, subset); } return memo[{n, s}] = ans; }; if (solve(n - 1, b)) cout << "YES"; else cout << "NO"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...