제출 #739958

#제출 시각아이디문제언어결과실행 시간메모리
739958Toxtaq은행 (IZhO14_bank)C++17
25 / 100
117 ms262144 KiB
#include<bits/stdc++.h> using namespace std; int n, m; vector<int>people, banknotes; vector<vector<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[indx][mask][cur_people] != -1)return table[indx][mask][cur_people]; for(int i = 0;i < m;++i){ if(mask & (1 << i)){ res = res | rec(indx, mask ^ (1 << i), cur_people - banknotes[i]); } } return table[indx][mask][cur_people] = res; } int main() { cin >> n >> m; people.resize(n); banknotes.resize(m); table.assign(n, vector<vector<short>>((1 << m), vector<short>(1001, -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...