#include "souvenirs.h"
#include <utility>
#include <vector>
void buy_souvenirs(int N, long long P0) {
if(N != 3) {
long long cur = P0, last_used = 0;
for(int i = 1; i < N; i++) {
if(i != N - 1) {
std::pair<std::vector<int>, long long> res = transaction(cur - 1);
if(res.first.size() == 2 || res.second == 1) {
cur = cur - 2;
if(res.first.size() == 2) {
last_used += 1;
}
}
else {
cur = cur - 1;
}
for(int j = 0; j < i - 1; j++) {
transaction(cur);
}
}
else {
for(int j = last_used; j < i; j++) {
transaction(cur - 1);
}
}
}
}
else {
std::pair<std::vector<int>, long long> res = transaction(P0 - 1);
if(res.first.size() == 1) {
long long val = P0 - 1 - res.second;
transaction(val - 1);
transaction(val - 1);
}
else {
long long val_used = P0 - 1 - res.second;
transaction(val_used / 2);
}
}
// std::pair<std::vector<int>, long long> res = transaction(3);
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... |