#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 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... |