Submission #1103097

#TimeUsernameProblemLanguageResultExecution timeMemory
1103097_bardia_Bank (IZhO14_bank)C++14
100 / 100
77 ms4740 KiB
#include <bits/stdc++.h> using namespace std; const int N = 20 + 2; int n, m, a[N], b[N], dp[1<<N], ps[N]; void read_input() { cin >> n >> m; for (int i = 0; i < n; i++) cin >> a[i]; for (int i = 0; i < m; i++) cin >> b[i]; } void solve() { ps[0] = a[0]; for (int i = 1; i < n; i++) ps[i] = ps[i - 1] + a[i]; dp[0] = -1; for (int msk = 1; msk < (1 << m); msk++) { int mx = -2; int sum = 0; for (int i = 0; i < m; i++) if (msk >> i & 1) { mx = max(mx, dp[msk ^ (1 << i)]); sum += b[i]; } if (sum == ps[mx + 1]) dp[msk] = mx + 1; else dp[msk] = mx; } for (int msk = 0; msk < (1 << m); msk++) { if (dp[msk] == n - 1) { cout << "YES" << endl; return ; } } cout << "NO" << endl; } int main() { ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0); read_input(), solve(); 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...