#include "souvenirs.h"
#include <bits/stdc++.h>
using namespace std;
long long ans[105],tb[105],kn=0;
void find_ans(long long i){
pair<vector<int>,long long>res = transaction(i);
for(int i:res.first) tb[i]++;
while(res.first.back()>=kn){
res.second+=ans[res.first.back()];
res.first.pop_back();
}
while(res.first.size()>1){
find_ans((i-res.second)/res.first.size());
while(res.first.back()>=kn){
res.second+=ans[res.first.back()];
res.first.pop_back();
}
}
ans[res.first[0]]=i-res.second;
if(kn!=res.first[0]+1) find_ans(ans[res.first[0]]-1);
kn=res.first[0];
}
void buy_souvenirs(int n, long long P0){
kn=n;
ans[0]=P0;
find_ans(P0-1);
for(int i=1;i<n;i++) while(tb[i]<i){
transaction(ans[i]);
tb[i]++;
}
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... |