제출 #1232616

#제출 시각아이디문제언어결과실행 시간메모리
1232616ethan7sky은행 (IZhO14_bank)C++20
100 / 100
91 ms9084 KiB
#include <bits/stdc++.h> using namespace std; int main() { 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<int> dp(1<<m, INT_MIN); vector<int> left_over(1<<m, -1); dp[0] = -1; left_over[0] = 0; for(int mask=0; mask<(1<<m); mask++){ for(int i=m-1; i>=0; i--){ if(mask&(1<<i)) { int wo = mask^(1<<i); if(dp[wo]==INT_MIN) continue; if(a[dp[wo]+1]==left_over[wo]+b[i]){ dp[mask] = dp[wo]+1; left_over[mask] = 0; } else if(a[dp[wo]+1]>left_over[wo]+b[i]){ dp[mask] = dp[wo]; left_over[mask] = left_over[wo]+b[i]; } } } if(dp[mask]==n-1) { cout << "YES"; return 0; } } cout << "NO"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...