#include <vector>
#include <algorithm>
#include <functional>
std::vector<int> max_coupons(int A, std::vector<int> P, std::vector<int> T) {
int N = P.size();
std::vector<int> result;
std::vector<int> indices(N);
for (int i = 0; i < N; ++i) indices[i] = i;
std::vector<bool> used(N, false);
std::vector<int> current_path;
std::function<void(int, int)> dfs = [&](int tokens, int depth) {
if (depth > result.size()) result = current_path;
for (int i = 0; i < N; ++i) {
if (!used[i] && tokens >= P[i]) {
used[i] = true;
current_path.push_back(i);
dfs((tokens - P[i]) * T[i], depth + 1);
current_path.pop_back();
used[i] = false;
}
}
};
dfs(A, 0);
return result;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |