#include <bits/stdc++.h>
using namespace std;
const long long MAXN = 100 + 10;
long long counter[MAXN];
std::pair<std::vector<int>, long long> transaction(long long M);
void buy_souvenirs(int N, long long P0){
if(N == 2)
{
transaction(P0 - 1);
}
else if(N == 3)
{
pair<vector<int>, long long> p = transaction(P0 - 1);
if(p.first.size() == 1)
{
long long first_val = (P0 - 1) - p.second;
transaction(first_val - 1);
transaction(first_val - 1);
}
else
{
long long total_sum = (P0 - 1) - p.second;
transaction(total_sum / 2);
}
}
else
{
long long prev = P0;
for(int i = 1 ; i < N ; ++i)
{
long long flag = 0;
while(counter[i] < i)
{
pair<vector<int>, long long> p = transaction(prev - 1 - flag);
for(int idx : p.first)
counter[idx]++;
if(p.second)
{
flag = 1;
}
}
if(flag){
prev -= 2;
}
else{
prev -= 1;
}
}
}
}
# | 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... |