제출 #1169117

#제출 시각아이디문제언어결과실행 시간메모리
1169117GoBananas69은행 (IZhO14_bank)C++20
25 / 100
1 ms836 KiB
#include <iostream> #include <vector> #include <algorithm> #include <map> #include <bitset> typedef long long ll; using namespace std; int n, m; vector<int> a, b; vector<vector<int>> mask; void solve(int curr, int k) { if (k == n) { cout << "YES\n"; exit(0); } for (int &i: mask[a[k]]) { if (!(i & curr)) { solve(curr | i, k + 1); } } } signed main() { cin.tie() -> sync_with_stdio(0); cin >> n >> m; a.resize(n); b.resize(m); int sum = 0; for (int &i: a) cin >> i; for (int &i: b) { cin >> i; sum += i; } mask.resize(sum + 1); for (int i = 0; i<(1 << m); ++i) { int curr = 0; for (int j = 0; j<m; ++j) { if (i & (1 << j)) curr += b[j]; } mask[curr].push_back(i); } for (int i = 0; i<n; ++i) { if (mask[a[i]].empty()) { cout << "NO\n"; return 0; } } solve(0, 0); 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...