Submission #871278

#TimeUsernameProblemLanguageResultExecution timeMemory
871278anarch_yBank (IZhO14_bank)C++17
52 / 100
1096 ms63824 KiB
#include <bits/stdc++.h> #pragma GCC target("popcnt") using namespace std; using ll = long long; #define all(x) begin(x), end(x) #define pb push_back int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; vector<int> a(n), b(m); for(int i=0; i<n; i++) cin >> a[i]; for(int i=0; i<m; i++){ cin >> b[i]; } vector<int> arr[1001]; 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]; } if(t<=1000) arr[t].pb(s); } vector<vector<int>> dp((1<<m), vector<int>(n+1, 0)); for(int s=0; s<(1<<m); s++){ dp[s][0] = 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][i] |= dp[s^u][i-1]; } } } } if(dp[(1<<m)-1][n]) 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...