Submission #1175470

#TimeUsernameProblemLanguageResultExecution timeMemory
1175470banganBank (IZhO14_bank)C++20
100 / 100
91 ms8520 KiB
#include <bits/stdc++.h> int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int n, m; std::cin >> n >> m; std::vector<int> a(n); for (int i = 0; i < n; i++) { std::cin >> a[i]; } std::vector<int> b(m); for (int i = 0; i < m; i++) { std::cin >> b[i]; } std::vector<int> f(1 << m, -1), g(1 << m); for (int msk = 1; msk < (1 << m); msk++) { for (int i = 0; i < m; i++) { if (msk >> i & 1) { int nxt = f[msk ^ (1 << i)] + 1; if (nxt < n && g[msk ^ (1 << i)] + b[i] == a[nxt] && nxt >= f[msk]) { f[msk] = nxt; g[msk] = 0; } else if (nxt - 1 >= f[msk]) { f[msk] = nxt - 1; g[msk] = g[msk ^ (1 << i)] + b[i]; } } } } if (f[(1 << m) - 1] == n - 1) { std::cout << "YES"; } else { std::cout << "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...