Submission #1253904

#TimeUsernameProblemLanguageResultExecution timeMemory
1253904chr34Festival (IOI25_festival)C++20
0 / 100
1097 ms3400 KiB
#include <bits/stdc++.h> using namespace std; //#define int long long #define endl "\n" #define dbg(x) cout << #x << " = " << (x) << endl; //const int INF = 1e18; const int MAXN = 1e6 + 10; const int MOD = 1e9 + 7; int best_count = 0; vector<int> best_path; void dfs(int tokens, vector<bool>& used, const vector<int>& P, const vector<int>& T, vector<int>& path) { bool progressed = false; int N = P.size(); for (int i = 0; i < N; ++i) { if (!used[i] && tokens >= P[i]) { int new_tokens = (tokens - P[i]) * T[i]; used[i] = true; path.push_back(i); dfs(new_tokens, used, P, T, path); path.pop_back(); used[i] = false; progressed = true; } } if (!progressed) { if ((int)path.size() > best_count) { best_count = path.size(); best_path = path; } } } vector<int> max_coupons(int A, std::vector<int> P, std::vector<int> T) { int N = P.size(); best_count = 0; best_path.clear(); vector<bool> used(N, false); vector<int> path; dfs(A, used, P, T, path); return best_path; } /*int32_t main(){ ios::sync_with_stdio(false); cin.tie(nullptr); //freopen("input.in", "r", stdin); //freopen("input.out", "w", stdout); vector<int> ans = max_coupons(13, {4, 500, 8, 14}, {1, 1, 1, 1}); for(auto x : ans) cout<<x<<endl; return 0; }*/
#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...