Submission #1250765

#TimeUsernameProblemLanguageResultExecution timeMemory
1250765flashmtSouvenirs (IOI25_souvenirs)C++20
39 / 100
12 ms412 KiB
#include "souvenirs.h" #include <bits/stdc++.h> #ifdef LOCAL #include "Debug.h" #else #define debug(...) 42 #endif using namespace std; pair<vector<int>, long long> buy(long long coins) { auto [ids, rem] = transaction(coins); return {ids, coins - rem}; } void buy_souvenirs(int n, long long p0) { if (n == 2) { buy(p0 - 1); return; } if (n == 3) { auto [ids, cost] = buy(p0 - 1); if (size(ids) == 2) buy(cost / 2); else { buy(cost - 1); buy(cost - 1); } return; } vector<long long> p(n); vector<int> bought(n); p[0] = p0; for (int i = 1; i < n; i++) { auto [ids, cost] = buy(p[i - 1] - 1); for (int j : ids) bought[j]++; if (size(ids) == 1) p[i] = cost; else p[i] = cost - 1; for (int j = 0; j < i - bought[i]; j++) buy(p[i]); } }
#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...