Submission #1249321

#TimeUsernameProblemLanguageResultExecution timeMemory
1249321k12_khoiBank (IZhO14_bank)C++20
100 / 100
128 ms1460 KiB
#include <bits/stdc++.h> using namespace std; const int N=20; const int MASK=(1<<N)+5; int n,m,h,sum,pos,a[N+5],b[N+5],pre[N+5]; bool check[MASK]; int main() { ios_base::sync_with_stdio(NULL); cin.tie(NULL); cout.tie(NULL); cin >> n >> m; for (int i=1;i<=n;i++) { cin >> a[i]; pre[i]=pre[i-1]+a[i]; } for (int j=0;j<m;j++) cin >> b[j]; h=(1<<m)-1; check[0]=true; for (int mask=0;mask<=h;mask++) if (check[mask]) { sum=0; for (int j=0;j<m;j++) if (mask&(1<<j)) sum+=b[j]; if (sum==pre[n]) { cout << "YES"; return 0; } for (int i=1;i<=n;i++) if (pre[i]>sum) { pos=i; break; } for (int j=0;j<m;j++) if ((mask&(1<<j))==0 and sum+b[j]<=pre[pos]) check[mask^(1<<j)]=true; } 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...