Submission #1326148

#TimeUsernameProblemLanguageResultExecution timeMemory
1326148Godgift42Bank (IZhO14_bank)C++20
100 / 100
96 ms8612 KiB
#include <bits/stdc++.h> using namespace std; int main(){ int n; cin >> n; int m; cin >> m; vector<int> a(n); for(int i=0;i<n;i++)cin >> a[i]; vector<int> b(m); for(int i=0;i<m;i++)cin >> b[i]; int bt=1<<m; vector<int> dp(bt,-1); vector<int> lft(bt,-1); dp[0]=0; lft[0]=0; for(int i=1;i<bt;i++){ for(int j=0;j<m;j++){ if(((1<<j)&i)>0){ if(dp[i^(1<<j)]!=-1){ if(lft[i^(1<<j)]+b[j]<a[dp[i^(1<<j)]]){ dp[i]=dp[i^(1<<j)]; lft[i]=lft[i^(1<<j)]+b[j]; } else if(lft[i^(1<<j)]+b[j]==a[dp[i^(1<<j)]]){ dp[i]=dp[i^(1<<j)]+1; lft[i]=0; break; } } } } if(dp[i]==n){ cout << "YES\n"; return 0; } } cout << "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...