Submission #1181963

#TimeUsernameProblemLanguageResultExecution timeMemory
1181963FaresSTHBank (IZhO14_bank)C++20
44 / 100
1096 ms4424 KiB
#include"bits/stdc++.h" using namespace std; int n,m,a[25],b[25],f[1001],cur[1001],pre[(1<<20)]; void sol(int i,int v){ if(i==n){ for(int j=0;j<n;j++){ if(cur[a[j]]<f[a[j]])return; } cout<<"YES"; exit(0); } for(int k=0;k<(1<<m);k++){ if(k&v||pre[k]>1000||!f[pre[k]]||cur[pre[k]]>=f[pre[k]])continue; cur[pre[k]]++; sol(i+1,v|k); cur[pre[k]]--; } } int main(){ cin.tie(0)->sync_with_stdio(0); cin>>n>>m; for(int i=0;i<n;i++){ cin>>a[i]; f[a[i]]++; } for(int i=0;i<m;i++)cin>>b[i]; for(int k=0;k<(1<<m);k++){ for(int j=0;j<m;j++){ if(k&(1<<j))pre[k]+=b[j]; } } sol(0,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...