Submission #1282077

#TimeUsernameProblemLanguageResultExecution timeMemory
1282077lukasuliashviliFestival (IOI25_festival)C++20
0 / 100
1096 ms4272 KiB
#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 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...