제출 #290495

#제출 시각아이디문제언어결과실행 시간메모리
290495aymanrsDetecting Molecules (IOI16_molecules)C++14
31 / 100
48 ms65540 KiB
#include <bits/stdc++.h> using namespace std; vector<vector<int>> dp; vector<int> mA; int best = 0; int solve(int u, const vector<int>& w, int l, vector<int>& taken){ if(l < 0 || u <= 0) return 0; if(dp[l][u] != -1) return dp[l][u]; auto copy = taken; dp[l][u] = solve(u, w, l-1, taken); int alt = -1; if(w[l] <= u){ copy.push_back(l); alt = w[l] + solve(u - w[l], w, l-1, copy); } if(alt > dp[l][u]) { dp[l][u] = alt; taken = copy; } if(dp[l][u] > best){ best = dp[l][u]; mA = taken; } return dp[l][u]; } vector<int> find_subset(int l, int u, vector<int> w){ dp = vector<vector<int>>(w.size(), vector<int>(u+1, -1)); vector<int> taken; solve(u, w, w.size() - 1, taken); if(best < l){ return {}; } return mA; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...