제출 #362760

#제출 시각아이디문제언어결과실행 시간메모리
362760ritul_kr_singh은행 (IZhO14_bank)C++17
100 / 100
191 ms4608 KiB
#include <bits/stdc++.h> using namespace std; signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; int a[n+1], b[m]; a[0] = 0; for(int i=1; i<=n; ++i){ cin >> a[i]; a[i] += a[i-1]; } for(int& i : b) cin >> i; int lim = (1<<m); int dp[lim]; // dp[i] -> max index(a) to which it's possible to distribute notes in mask for(int& i : dp) i = 0; int ok = 0; for(int i=0; i<lim; ++i){ int sum = 0; for(int j=0; j<m; ++j){ if(i&(1<<j)) sum += b[j]; } for(int j=0; j<m; ++j){ if(i&(1<<j)){ if(a[dp[i-(1<<j)]+1]==sum){ dp[i] = max(dp[i], dp[i-(1<<j)]+1); } dp[i] = max(dp[i], dp[i-(1<<j)]); } } ok |= dp[i]==n; } cout << (ok ? "YES\n" : "NO\n"); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...