Submission #1113806

#TimeUsernameProblemLanguageResultExecution timeMemory
1113806ChinguunBank (IZhO14_bank)C++14
0 / 100
1 ms504 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define ff first #define ss second #define pb push_back const int N = 27; const int oo = 1e18; const int mod = 1e9 + 7; int a[N], b[N], n, m; bool f, vis[N]; void sol (int k, int mask) { if (k > n) { f = 1; return; } if (a[k] == 0) sol (k + 1, mask); for (int i = 0; i < m; i++) { if (((1 << i) & mask) == 0) { if (a[k] >= b[i + 1]) { mask += (1 << i); if (!vis[mask]) { a[k] -= b[i + 1]; sol (k, mask); a[k] += b[i + 1]; sol (k, mask); } vis[mask] = 1; } else break; } } return; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i <= m; i++) cin >> b[i]; sort (a + 1, a + n + 1); sort (b + 1, b + m + 1); sol (1, 0); if (f) cout << "YES\n"; else cout << "NO\n"; 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...