Submission #1292969

#TimeUsernameProblemLanguageResultExecution timeMemory
1292969redminote13proBank (IZhO14_bank)C++20
19 / 100
1 ms576 KiB
#include <bits/stdc++.h> using namespace std; #define print(a) for(auto x : a){cout << x << " ";} #define scan(a) for(auto & x : a) {cin >> x;} #define rall(a) a.rbegin(), a.rend() #define all(a) a.begin(), a.end() #define int long long using ll = long long; using ull = unsigned long long; using pii = pair<int, int>; const ll MOD = 1e9 + 7, INF = 1e18, LOG = 20, N = 1e5 + 5; inline void solve() { int n, m; cin >> n >> m; vector<int> a(n), b(m); scan(a); scan(b); sort(rall(a)); multiset<int> st(b.begin(), b.end()); for (auto s : a) { int S = s; vector<int> v(st.begin(), st.end()); int k = v.size(); vector<int> dp(S + 1, -1); dp[0] = -2; for (int i = 0; i < k; i++) { int x = v[i]; for (int sum = S; sum >= x; sum--) { if (dp[sum] == -1 && dp[sum - x] != -1) { dp[sum] = i; } } } if (dp[S] == -1) { cout << "NO\n"; return; } int cur = S; while (cur > 0) { int ii = dp[cur]; int x = v[ii]; st.erase(st.find(x)); cur -= x; } } cout << "YES\n"; } signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); solve(); 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...