Submission #1176974

#TimeUsernameProblemLanguageResultExecution timeMemory
1176974GoBananas69Bank (IZhO14_bank)C++20
25 / 100
2 ms840 KiB
#include <algorithm> #include <iostream> #include <vector> using namespace std; typedef long long ll; ll n, m; void solve(ll mask, ll curr, vector<vector<ll>> &sums, vector<ll> &a) { if (curr == n) { cout << "YES\n"; exit(0); } for (ll &i: sums[a[curr]]) { if (mask & i) continue; solve(mask | i, curr + 1, sums, a); } } signed main() { cin.tie(0)->sync_with_stdio(0); cin >> n >> m; vector<ll> a(n), b(m); ll mx = 0; if (n > m) { cout << "NO\n"; return 0; } for (ll &i: a) cin >> i; for (ll &i: b) { cin >> i; mx += i; } vector<vector<ll>> sums(mx + 1); for (ll i = 0; i<(1 << m); ++i) { ll curr = 0; for (ll j = 0; j<m; ++j) { if ((1 << j) & i) curr += b[j]; } sums[curr].push_back(i); } for (ll i = 0; i<n; ++i) { if (sums[a[i]].empty()) { cout << "NO\n"; return 0; } } solve(0, 0, sums, a); cout << "NO\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...