#include "souvenirs.h"
#include <utility>
#include <vector>
//pragma GCC optimize("Ohio")
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define matrix vector<vector<ll>>
#define fi first
#define se second
#define BIG __int128
#define wtf array<int,3>
#define dcm pair<int,int>
#define db long double
//MAIN
void buy_souvenirs(int N, ll P0){
    if (N == 2){
        transaction(P0 - 1);
        return ;
    }
    int dem = N - 1;
    for (int i = 1; i <= N - 2; i++){
        P0--;
        auto [v, c] = transaction(P0);
        if (v.size() == 1) P0 -= c;
        else P0 --, dem--;
        for (int j = 1; j < i; j++) transaction(P0);
    }
    if (dem < N - 1) for (int j = 1; j <= dem; j++) transaction(1);
    else for (int j = 1; j < N; j++) transaction(P0 - 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... |