Submission #739961

#TimeUsernameProblemLanguageResultExecution timeMemory
739961ToxtaqBank (IZhO14_bank)C++17
100 / 100
128 ms2388 KiB
#include<bits/stdc++.h> using namespace std; int n, m; vector<int>people, banknotes; vector<short>table; short rec(int indx, int mask, int cur_people){ if(indx == n)return 1; if(cur_people < 0)return 0; if(cur_people == 0){ indx++; if(indx == n)return 1; cur_people = people[indx]; } bool res = 0; if(table[mask] != -1)return table[mask]; for(int i = 0;i < m;++i){ if(mask & (1 << i)){ res = res | rec(indx, mask ^ (1 << i), cur_people - banknotes[i]); } } return table[mask] = res; } int main() { cin >> n >> m; people.resize(n); banknotes.resize(m); table.assign((1 << m), -1); for(int i = 0;i < n;++i)cin >> people[i]; for(int i = 0;i < m;++i)cin >> banknotes[i]; if(rec(0, (1 << m) - 1, people[0])){ 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...