Submission #1012886

#TimeUsernameProblemLanguageResultExecution timeMemory
1012886MohamedFaresNebiliBank (IZhO14_bank)C++14
25 / 100
2 ms604 KiB
#include <bits/stdc++.h> using namespace std; int N, M; int A[22], B[22]; int DP[11][1025], P[1025]; int solve(int i, int mask) { if(i == N) return 1; if(DP[i][mask] != -1) return DP[i][mask]; int best = 0; for(int l = 1; l < (1 << M); l++) { if(mask & l || P[l] != A[i]) continue; best = max(best, solve(i + 1, mask | l)); } return DP[i][mask] = best; } int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> N >> M; memset(DP, -1, sizeof DP); for(int l = 0; l < N; l++) cin >> A[l]; for(int l = 0; l < M; l++) cin >> B[l]; for(int l = 1; l < (1 << M); l++) { int K = 0; for(int i = 0; i < M; i++) if(l & (1 << i)) K += B[i]; P[l] = K; } bool ok = solve(0, 0); cout << (ok ? "YES" : "NO") << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...