제출 #1312002

#제출 시각아이디문제언어결과실행 시간메모리
1312002nikoloz-ch은행 (IZhO14_bank)C++20
71 / 100
1095 ms812 KiB
#include <bits/stdc++.h> #define int int64_t using namespace std; int n, m; vector<vector<int>> pub; vector<int> a, b; bool rec(int cnt, int cur){ if(cur == n) return true; for(auto &i : pub[cur]){ if((cnt & i) == 0){ if(rec(cnt | i, cur + 1)) return true; } } return false; } void solve(){ cin >> n >> m; pub.assign(n, vector<int>()); a.resize(n); b.resize(m); for(auto &i : a) cin >> i; for(auto &i : b) cin >> i; for(int i = 0; i < (1LL << m); i++){ int sum = 0; for(int j = 0; j < m; j++){ if(i & (1LL << j)){ sum += b[j]; } } for(int j = 0; j < n; j++){ if(sum == a[j]){ pub[j].push_back(i); } } } if(rec(0, 0)){ cout << "YES\n"; } else { cout << "NO\n"; } } signed main(){ cin.tie(0)->sync_with_stdio(0); int _ = 1;// cin >> _; cout.tie(0); while(_--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...