#include "souvenirs.h"
#include <bits/stdc++.h>
using namespace std;
void buy_souvenirs(int N, long long P0)
{
pair<vector<int>, long long> res;
if (N == 2)
{
transaction(P0 - 1);
return;
}
if (N == 3)
{
res = transaction(P0 - 1);
long long x = res.second;
if (res.first.size() == 2)
{
transaction((P0 - x - 1) / 2);
return;
}
else
{
long long P1 = P0 - x - 1;
transaction(P1 - 1);
transaction(P1 - 1);
return;
}
}
if (P0 == N)
{
for (int i = 0; i < N; i++)
{
int j = i;
while (j--)
{
transaction(N - i);
}
}
return;
}
vector<long long> P(N, 0);
P[0] = P0;
vector<int> cnt(N, 0);
cnt[0] = INT_MAX;
set<int> s;
for (int i = 1; i < N; i++)
{
long long x = P[i-1] - 1;
int n = i - cnt[i];
while (cnt[i] < i)
{
res = transaction(x);
for (int id : res.first)
{
if (cnt[id] < id)
cnt[id]++;
}
if (cnt[i] < i)
{
x = P[i-1] - 2;
}
}
P[i] = x;
}
return;
}
| # | 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... |