Submission #1217803

#TimeUsernameProblemLanguageResultExecution timeMemory
1217803sam230609Bank (IZhO14_bank)C++20
100 / 100
388 ms8620 KiB
#include <bits/stdc++.h> using namespace std; bitset<21> c[(1<<20)]; int p[21],a[21]; int main(){ int n,m,s,l; cin >>n>>m; p[0]=0; for(int i=1;i<=n;++i) cin>>p[i],p[i]+=p[i-1]; for(int i=0;i<m;++i) cin>>a[i],c[1<<i][0]=1; for(int i=1;i<(1<<m);++i){ s=0; l=0; for(int j=0;j<m;++j) if(i&(1<<j)) s+=a[j]; for(int j=1;j<=n;++j) if(s==p[j]) l=j; if(s==p[l] && c[i][l-1]) c[i][l]=1; for(int j=0;j<m;++j) if(!(i&(1<<j))) for(int k=0;k<=n;++k) c[i^(1<<j)][k]=c[i^(1<<j)][k]|c[i][k]; }if(c[(1<<m)-1][n]) 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...