Submission #821802

#TimeUsernameProblemLanguageResultExecution timeMemory
821802OAleksaBank (IZhO14_bank)C++14
19 / 100
80 ms8652 KiB
#include <bits/stdc++.h> #define f first #define s second using namespace std; signed main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int tt = 1; //cin >> tt; while(tt--) { int n, m; cin >> n >> m; vector<int> a(n + 1), b(m); for(int i = 1;i <= n;i++) cin >> a[i]; for(int i = 0;i < m;i++) cin >> b[i]; bool ok = false; vector<int> dp(1 << m), o(1 << m); for(int mask = 1;mask < (1 << m);mask++) { for(int i = 0;(1 << i) <= mask;i++) { if(!(mask & (1 << i))) continue; int s = mask ^ (1 << i); if(o[mask] + b[i] < a[dp[s] + 1]) o[mask] += b[i]; else if(o[s] + b[i] == a[dp[s] + 1]) { dp[mask] = max(dp[mask], dp[s] + 1); o[mask] = 0; } } ok |= (dp[mask] == n); } cout << (ok ? "YES" : "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...