제출 #1192281

#제출 시각아이디문제언어결과실행 시간메모리
1192281orgiloogiiBank (IZhO14_bank)C++20
100 / 100
79 ms8648 KiB
#include <iostream> #include <algorithm> #include <cmath> #include <vector> #include <set> #include <queue> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int n, m; cin >> n >> m; vector<int> a(n), b(m); for (int i = 0;i < n;i++) { cin >> a[i]; } for (int i = 0;i < m;i++) { cin >> b[i]; } vector<pair<int, int>> dp(1 << m, {-1, -1}); dp[0] = {0, 0}; for (int s = 0;s < (1 << m);s++) { int id = dp[s].first; int ext = dp[s].second; if (id == -1) continue; for (int i = 0;i < m;i++) { if (s & (1 << i)) continue; if (ext + b[i] == a[id]) { dp[s | (1 << i)] = {id + 1, 0}; } else if (ext + b[i] < a[id]) { dp[s | (1 << i)] = {id, ext + b[i]}; } } } for (int s = 0;s < (1 << m);s++) { if (!(dp[s].first ^ n)) { cout << "YES" << endl; return 0; } } cout << "NO" << endl; 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...