Submission #1226213

#TimeUsernameProblemLanguageResultExecution timeMemory
1226213chuchucharlesBank (IZhO14_bank)C++20
0 / 100
1 ms324 KiB
#include <bits/stdc++.h> using namespace std; int n, m, a[25], b[25], sum[1 << 20]; bool dp[1 << 20]; signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; for (int i = 0; i < n; i++) { cin >> a[i]; if (i) a[i] += a[i - 1]; } for (int i = 0; i < m; i++) { cin >> b[i]; } for (int mask = 0; mask < (1 << m); mask++) { sum[mask] = 0; for (int i = 0; i < m; i++) { if (mask & (1 << i)) sum[mask] += b[i]; } } dp[0] = true; for (int mask = 0; mask < (1 << m); mask++) { if (!dp[mask]) continue; auto it = upper_bound(a, a + n, sum[mask]); if (it == a + n) continue; int re = *it - sum[mask]; for (int i = 0; i < m; i++) { if (mask & (1 << i)) continue; if (b[i] <= re) dp[mask | (1 << i)] = true; } if (sum[mask] == a[n - 1]) { cout << "YES"; return 0; } } 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...