Submission #1185876

#TimeUsernameProblemLanguageResultExecution timeMemory
1185876enzyBank (IZhO14_bank)C++20
100 / 100
106 ms8644 KiB
#include <bits/stdc++.h> using namespace std; const int maxm=20; const int inf=1e9+7; int dp[(1<<maxm)], sobra[(1<<maxm)], v[maxm+1], notas[maxm]; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); memset(dp,-1,sizeof(dp)); memset(sobra,-1,sizeof(sobra)); int n, m; cin >> n >> m; v[n]=inf; for(int i=0;i<n;i++) cin >> v[i]; for(int i=0;i<m;i++) cin >> notas[i]; dp[0]=0; sobra[0]=0; for(int mask=1;mask<(1<<m);mask++){ for(int k=0;k<m;k++){ if((mask&(1<<k))==0) continue; int ant=mask^(1<<k); if(dp[ant]==-1) continue; int at=sobra[ant]+notas[k]; if(at<v[dp[ant]]){ dp[mask]=dp[ant]; sobra[mask]=at; }else if(at==v[dp[ant]]){ dp[mask]=dp[ant]+1; sobra[mask]=0; } } } if(dp[(1<<m)-1]==n) cout << "YES" << endl; else cout << "NO" << endl; 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...