Submission #1228925

#TimeUsernameProblemLanguageResultExecution timeMemory
1228925kiennguyendinhBank (IZhO14_bank)C++20
52 / 100
1093 ms7496 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); } for(int i = 0;i < n;i++){ for(int elm : v[a[i]]){ if(!i){ for(int preMask = 0;preMask < M;preMask++){ if((preMask & elm) == elm){ c[i][preMask] = true; } } }else{ for(int preMask = 0;preMask < M;preMask++){ if((preMask & elm) == elm){ 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...