Submission #871271

#TimeUsernameProblemLanguageResultExecution timeMemory
871271anarch_yBank (IZhO14_bank)C++17
0 / 100
3 ms828 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define all(x) begin(x), end(x) #define pb push_back int main(){ int n, m; cin >> n >> m; vector<int> a(n), b(m); for(int i=0; i<n; i++) cin >> a[i]; int tot = 0; for(int i=0; i<m; i++){ cin >> b[i]; tot += b[i]; } vector<int> arr[tot+1]; for(int s=0; s<(1<<m); s++){ int t = 0; for(int p=0; p<m; p++){ if(s&(1<<p)) t+=b[p]; } arr[t].pb(s); } vector<int> dp((1<<m), 1); for(int i=1; i<=n; i++){ int t = a[i-1]; for(int s=0; s<(1<<m); s++){ for(auto u: arr[t]){ if((s&u)==u){ dp[s] |= dp[s^u]; } } } } if(dp[(1<<m)-1]) cout << "YES"; else cout << "NO"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...