Submission #1228938

#TimeUsernameProblemLanguageResultExecution timeMemory
1228938kiennguyendinhBank (IZhO14_bank)C++20
19 / 100
63 ms7488 KiB
#include <bits/stdc++.h> using namespace std; int n,m; int a[20]; int b[20]; bool c[20][1 << 20]; vector<int> v[20001]; int M; int main() { ios_base::sync_with_stdio(false); cin.tie(0);cout.tie(0); cin >> n >> m; M = 1 << m; for(int i = 0;i < n;i++) cin >> a[i]; for(int j = 0;j < m;j++) cin >> b[j]; for(int mask = 0;mask < M;mask++){ int sum = 0; for(int i = 0;i < m;i++) if((mask >> i)&1) sum += b[i]; v[sum].push_back(mask); } //van de, cap nhat cho cac supperMask for(int i = 0;i < n;i++){ for(int elm : v[a[i]]){ if(!i){ for(int preMask = elm;preMask < M;preMask = (preMask + 1) | preMask){ c[i][preMask] = true; } }else{ for(int preMask = elm;preMask < M;preMask = (preMask + 1) | preMask){ c[i][preMask] |= c[i - 1][preMask ^ elm]; } } } } for(int mask = 0;mask < M;mask++){ if(c[n - 1][mask]){ cout << "YES"; return 0; } } 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...