제출 #1270287

#제출 시각아이디문제언어결과실행 시간메모리
1270287zuz14은행 (IZhO14_bank)C++20
0 / 100
2 ms328 KiB
#include <bits/stdc++.h> #define F first #define S second using namespace std; int n, m, salary[21], bank[21]; bool dfs(int k, int mask){ int c=0; bool b, res=0; //cout<<k<<' '<<mask<<endl; if (k>=n || salary[k]==0) return 1; if (mask==(1<<20)-1) return 0; for (int i=0; i<(1<<m); i++) { b=1, c=0; for (int j=0; j<m; j++){ if (i & (1<<j)) c+=bank[i]; if ((i & (1<<j)) && (mask & (1<<j))) b=0; } if (b && c==salary[k]) res=max(res, dfs(k+1, mask+i)); } return res; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin>>n>>m; for (int i=0; i<n; i++) cin>>salary[i]; for (int i=0; i<m; i++) cin>>bank[i]; bool c=dfs(0, 0); if (c) cout<<"YES"; else 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...