Submission #605863

#TimeUsernameProblemLanguageResultExecution timeMemory
605863jjianglyBank (IZhO14_bank)C++14
44 / 100
1084 ms316 KiB
#include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() #define siz(x) int(x.size()) #define ll long long #define ar array #define vt vector #define inf INT_MAX #define lnf LLONG_MAX const int nxm = int(2e5) + 7; int n, m, a[25], b[25]; namespace sub1 { void exe() { bool ok = false; function<void(int, int)> work = [&](int idx, int v) { if (idx == m) { ok = (v == a[0] ? true : ok); return; } work(idx + 1, v + b[idx]); work(idx + 1, v); }; work(0, 0); cout << (ok ? "YES" : "NO") << "\n"; } }; namespace sub2 { void exe() { vt<int> p(m); iota(all(p), 0); bool ok = false; do { int cnt = 0, sum = 0; for (int i = 0; i < m; ++i) { sum += b[p[i]]; if (sum == a[cnt]) { ++cnt; sum = 0; } if (cnt >= n) { break; } } if (cnt == n) { ok = true; } } while (next_permutation(all(p))); cout << (ok ? "YES" : "NO") << "\n"; } }; int subtask() { if (n == 1) { return 1; } else if (n <= 10) { return 2; } else if (n <= 20 && m <= 14) { return 3; } return 4; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for (int i = 0; i < n; ++i) { cin >> a[i]; } for (int i = 0; i < m; ++i) { cin >> b[i]; } if (subtask() == 1) { sub1::exe(); } else if (subtask() == 2) { sub2::exe(); } 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...