제출 #1311999

#제출 시각아이디문제언어결과실행 시간메모리
1311999nikoloz-ch은행 (IZhO14_bank)C++20
0 / 100
4 ms1908 KiB
#include <bits/stdc++.h> #define int int64_t using namespace std; int n, m; vector<vector<vector<int>>> pub; vector<vector<int>> sub; bool rec(set<int> &a, int cur){ auto y = pub[cur]; for(auto &i : y){ bool tr = false; set<int> st = a; for(auto &j : i){ if(a.find(j) != a.end()) tr = true; st.insert(j); } if(tr) continue; if(cur == n or rec(st,cur+1)) return true; } return false; } void solve(){ cin >> n >> m; vector<int> a(n), b(m); for(auto &i : a) cin >> i; for(auto &i : b) cin >> i; for(int i = 0; i < (1LL<<m); i++){ vector<int> cur; for(int j = 0; j < m; j++){ if(i & (1LL << j)){ cur.push_back(j); } } sub.push_back(cur); } for(auto &i : sub){ int k = 0; for(auto &j : i){ k += b[j]; } for(auto &j : a){ if(j == k){ pub[j].push_back(i); } } } set<int> st; if(rec(st,0)){ cout << "YES\n"; return; } 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...