Submission #1191889

#TimeUsernameProblemLanguageResultExecution timeMemory
1191889hmmm은행 (IZhO14_bank)C++20
0 / 100
0 ms328 KiB
#include<bits/stdc++.h> using namespace std; using pii=array<int,2>; const int N=21; int a[N],b[N]; pii dp[1<<N]; int main(){ ios::sync_with_stdio(0); cin.tie(0); int n,m; cin >> n >> m; for(int i=0;i<n;i++) cin >> a[i]; for(int i=0;i<m;i++) cin >> b[i]; for(int i=0;i<(1<<m);i++) dp[i]={-1,-1}; for(int i=0;i<(1<<m);i++){ int st=dp[i][0]; int cnt=dp[i][1]; if(st==-1) continue; for(int j=0;j<m;j++){ if((i&(1<<j))!=0) continue; if(cnt+b[j]==a[st]){ dp[i|(1<<j)]={st+1,0}; } else if(cnt+b[j]<a[st]){ dp[i|(1<<j)]={st,cnt+b[j]}; } } } for(int i=1;i<(1<<m);i++){ // cout << i << ' ' << dp[i][0] << ' ' << dp[i][1] << "\n"; if(dp[i][0]==n){ 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...