#include "souvenirs.h"
#include <vector>
using namespace std;
void buy_souvenirs(int N, long long P0) {
vector<long long> P(N);
vector<int> bought_count(N, 0); // Đếm số món đã mua (kể cả trong khám phá)
P[0] = P0;
// Bước 1: Khám phá P[1..N-1] và ĐỒNG THỜI đếm số món đã mua
for (int i = N - 1; i >= 1; --i) {
for (long long M = 1; M < P0; ++M) {
auto res = transaction(M);
const vector<int>& types = res.first;
// Cập nhật số lượng đã mua
for (int t : types) {
bought_count[t]++;
}
// Kiểm tra xem loại i có được mua trong giao dịch này không
bool bought_i = false;
for (int t : types) {
if (t == i) {
bought_i = true;
break;
}
}
if (bought_i) {
P[i] = M;
break;
}
}
}
// Bước 2: Mua đủ số lượng còn thiếu
for (int i = 1; i < N; ++i) {
int need = i - bought_count[i]; // Cần mua thêm bao nhiêu
for (int j = 0; j < need; ++j) {
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... |