제출 #965493

#제출 시각아이디문제언어결과실행 시간메모리
9654930x34c은행 (IZhO14_bank)C++17
19 / 100
115 ms16868 KiB
#include <bits/stdc++.h> #define ll long long #define pii pair<int, int> #define endl '\n' #define int ll using namespace std; signed main() { ios_base::sync_with_stdio(0); cin.tie(0); int N, M; cin >> N >> M; vector<int> ppl(N + 1), mny(M); for(int i = 0; i < N; i++) cin >> ppl[i]; ppl[N] = numeric_limits<int>::max(); for(int j = 0; j < M; j++) cin >> mny[j]; vector<int> pref_sol(1 << M, -1); vector<int> cur_sol(1 << M, 0); pref_sol[0] = 0; for(int mask = 1; mask < (1 << M); mask++) { for(int pick = 0; pick < M; pick++) { int prev = mask & (~(1 << pick)); if(mask == prev) continue; if(pref_sol[prev] == -1) continue; if(cur_sol[prev] + mny[pick] > ppl[pref_sol[prev]]) continue; else if(cur_sol[prev] + mny[pick] < ppl[pref_sol[prev]]) { cur_sol[mask] += mny[pick]; pref_sol[mask] = pref_sol[prev]; } else { cur_sol[prev] += mny[pick]; pref_sol[mask] = 1 + pref_sol[prev]; } } } if(pref_sol[(1 << M) - 1] == N) { cout << "YES" << endl; } else cout << "NO" << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...