#include "souvenirs.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int N, a[101];
ll P[101];
pair<vector<int>, ll> query(ll val){
auto ret = transaction(val);
for (auto &x:ret.first) a[x]++;
return ret;
}
int dfs(ll val, int M){
auto [V, R] = query(val);
assert(V[0] < M);
ll T = val - R;
int cur = V[0];
while(true){
while(V.back() >= M){
T -= P[V.back()];
V.pop_back();
}
if (cur+1 == M) break;
M = dfs((T-1) / (int)V.size(), M);
}
P[cur] = T;
return cur;
}
void buy_souvenirs(int N, long long P0){
::N = N;
dfs(P0-1, N);
for (int i=1;i<N;i++){
for (int j=a[i];j<i;j++) query(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... |