#include "souvenirs.h"
#include <utility>
#include <vector>
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
void buy_souvenirs(int N, long long P0) {
ll n = N;
ll p0 = P0;
vector<ll> tar(n), cnt(n, 0);
iota(tar.begin(), tar.end(), 0);
ll pre = 0;
ll cur = p0 - 2;
while(cur >= 0){
if(pre == n - 1) break;
if(pre != n - 1 && cur == 0) cur = 1;
auto res = transaction(cur);
cnt[res.first[0]]++;
if(res.first[0] == pre + 1) {
for(;cnt[res.first[0]] < tar[res.first[0]]; cnt[res.first[0]]++) {
transaction(cur);
}
cur -= 2;
pre = res.first[0];
continue;
}
else{
for(;cnt[res.first[0] - 1] < tar[res.first[0] - 1]; cnt[res.first[0] - 1]++) {
transaction(cur + 1);
}
}
}
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... |