Submission #334143

#TimeUsernameProblemLanguageResultExecution timeMemory
334143Pety은행 (IZhO14_bank)C++14
19 / 100
65 ms504 KiB
#include <bits/stdc++.h> #pragma GCC optimize ("O3") using namespace std; int n, m, a[22], b[22], t, it, i; vector<int>Masks[22]; void backt (int k, int mask) { if (k == n + 1) { cout << "YES\n"; exit(0); } t = Masks[k].size(); for (i = 0; i < t; ++i) { it = Masks[k][i]; if (mask & it) continue; backt(k + 1, mask | it); } return; } int main() { cin >> n >> m; for (int i = 1; i <= n; i++) cin >> a[i]; for (int j = 0; j < m; j++) cin>> b[j]; for (int mask = 0; mask < (1 << m); mask++) { int sum = 0; for (int j = 0; j < m; j++) if (mask & (1 << j)) sum += b[j]; for (int i = 1; i <= n; i++) if (sum == a[i]) Masks[i].push_back(mask); } backt(1, 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...