#include "souvenirs.h"
#include <bits/stdc++.h>
using namespace std;
void buy_souvenirs(int N, long long P0) {
//pair<vector<int>, long long> res = transaction(P0 - 1);
// N, N - 1, N - 2, N - 3, N - 4, .. 1
if(N == 2){
transaction(P0 - 1);
return;
}
long long last = P0;
vector<int> buy(N + 1, 0);
for(int i = 1; i <= N - 1; ++i){
assert(buy[i] < i);
if(buy[i] == i) continue;
if(i == N - 1){
for(int j = 1; j <= i - buy[i]; ++j) transaction(last - 1);
continue;
}
pair<vector<int>, long long> res = transaction(last - 2);
assert((int) res.first.size() > 0);
for(auto it : res.first) buy[it] += 1;
if(res.first[0] ^ i){
for(int j = 1; j <= i - buy[i]; ++j){
transaction(last - 1);
}
last -= 1;
}else{
for(int j = 1; j <= i - buy[i]; ++j){
transaction(last - 2);
}
last -= 2;
}
}
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... |