#ifndef SOUVENIRS_H
#define SOUVENIRS_H
#include <vector>
using namespace std;
std::pair<std::vector<int>, long long> transaction(long long M);
#endif
//========================================================
#include "souvenirs.h"
#include <bits/stdc++.h>
using namespace std;
static const long long INF = 1e18;
static int N;
static long long P0, p[105];
static int cntTrans[105];
void buy_souvenirs(int n, long long P0_input) {
N = n;
P0 = P0_input;
p[0] = P0;
memset(cntTrans, 0, sizeof(cntTrans));
for (int i = 1; i < N; ++i) {
long long lo = 1;
long long hi = p[i-1] - 1;
while (lo < hi) {
long long mid = lo + (hi - lo) / 2;
auto [v, rem] = transaction(mid);
bool sold_i = binary_search(v.begin(), v.end(), i);
if (sold_i) {
hi = mid;
} else {
lo = mid + 1;
}
}
p[i] = lo;
}
for (int i = 1; i < N; ++i) {
for (int t = 0; t < i; ++t) {
transaction(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... |