Submission #1131532

#TimeUsernameProblemLanguageResultExecution timeMemory
1131532micro7은행 (IZhO14_bank)C++20
71 / 100
1095 ms1216 KiB
#include <iostream> #include <vector> using namespace std; constexpr int MAXN = 20, MAXM = 20; int n, m, a[MAXN + 1], b[MAXM]; bool dp[MAXN + 1][1 << MAXM]; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n >> m; for (int i = 1; i <= n; ++i) { cin >> a[i]; } for (int i = 0; i < m; ++i) { cin >> b[i]; } dp[0][0] = true; for (int i = 1; i <= n; ++i) { vector<int> configs; for (int s = 0; s < (1 << m); ++s) { int val = 0; for (int j = 0; j < m; ++j) { if (s & (1 << j)) { val += b[j]; } } if (val == a[i]) { configs.push_back(s); } } // cout << "configs:"; // for (auto i : configs) { // cout << " " << i; // } // cout << "\n"; for (int s = 0; s < (1 << m); ++s) { for (auto j : configs) { if ((s & j) != j) { continue; } if (dp[i - 1][s ^ j]) { dp[i][s] = true; break; } } // cout << s << ":" << dp[i][s] << " "; if (i == n && dp[i][s]) { cout << "YES"; return 0; } } cout << '\n'; } cout << "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...