제출 #358540

#제출 시각아이디문제언어결과실행 시간메모리
358540nicolaalexandra은행 (IZhO14_bank)C++14
71 / 100
1084 ms512 KiB
#include <bits/stdc++.h> using namespace std; short v[22],a[22]; vector <int> L[22]; int n,m,i,sol; void back (int pas, int mask){ if (sol) return; if (pas > n){ sol = 1; return; } for (auto it : L[pas]){ if ( (it & mask) == 0) back (pas+1,mask | it); } } int main (){ //ifstream cin ("date.in"); //ofstream cout ("date.out"); cin>>n>>m; for (i=1;i<=n;++i) cin>>v[i]; for (i=0;i<m;++i) cin>>a[i]; int maxi = (1<<m); for (int mask=0;mask<maxi;++mask){ int sum = 0; for (int bit=0;bit<m;++bit){ if (mask & (1<<bit)) sum += a[bit]; } for (i=1;i<=n;++i){ if (v[i] == sum) L[i].push_back(mask); } } for (i=1;i<=n;++i) if (L[i].empty()){ cout<<"NO\n"; return 0; } back (1,0); if (sol) cout<<"YES"; else cout<<"NO"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...