#include "souvenirs.h"
#include <bits/stdc++.h>
using namespace std;
void buy_souvenirs(int N, long long P0) {
vector<vector<int>> vis(N, vector<int>(N));
vector<long long> p(N);
vector<int> cnt(N);
p[0] = P0;
vis[0][0] = 1;
for (int i = N - 1; i > 0; i--) {
while(!p[i]) {
int j = i;
while(!p[j]) j--;
int c = 0;
for (int k = 0; k < N; k++) c += (vis[j][k] == 1);
long long val = (p[j] - 1) / c;
vector<int> vec;
long long rem;
vector<int> v(N);
tie(vec, rem) = transaction(val);
for (int x : vec) {
cnt[x]++;
v[x] = 1;
}
val -= rem;
for (int k = i + 1; k < N; k++) {
if (v[k]) {
v[k] = 0;
val -= p[k];
}
}
int k = 0;
while(!v[k]) k++;
vis[k] = v;
p[k] = val;
}
for (int j = i + 1; j < N; j++) {
if (vis[i][j] && p[j]) {
p[i] -= p[j];
vis[i][j] = 0;
}
}
}
for (int i = 0; i < N; i++) {
for (int j = cnt[i]; j < i; j++) {
transaction(p[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... |