#include "souvenirs.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ff first
#define ss second
void buy_souvenirs(int N, long long P0) {
    vector<ll> p(N), cnt(N);
    ll pl = P0 - 1; 
    while (true) {
        auto res = transaction(pl);
        if (res.ff.size() == 1) {
            p[N - 1] = pl;
            break;
        }
        pl--;
        if (pl <= 0) break;
    }
    cnt[N - 1]++;
    for (int i = N - 2; i >= 0; i--) {
        auto res = transaction(p[i + 1] + 1);
        if (res.ff[0] == i) {
            cnt[i]++;
            p[i] = p[i + 1] + 1;
        } else {
            cnt[i + 1]++;
            p[i] = p[i + 1] + 2;
        }
    }
    for (int i = 1; i < N; i++) {
        for (int j = cnt[i]; j < i; j++) {
            transaction(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... |