#include "souvenirs.h"
#include "bits/stdc++.h"
#include <utility>
#include <vector>
using namespace std;
typedef long long ll;
#define fi first
#define se second
#define pb push_back
void buy_souvenirs(int N, long long P0) {
// long long X = P0 - 1;
// pair<vector<int>, long long> res = transaction(X);
// ll Y = res.second;
// // cout << X << " " << Y << "\n";
// if((res.first).size() == 1) {
// transaction(X - Y - 1);
// transaction(X - Y - 1);
// } else {
// transaction((X - Y) / 2);
// }
// cout << "AWALNYA " << P0 << "\n";
vector<ll> cur, but(N);
cur.pb(P0);
for(int i = 0; i < N; i++) {
but[i] = i;
}
for(int i = 1; i < N; i++) {
pair<vector<int>, long long> res = transaction(cur[i - 1] - 1);
// cout << res.se << " dari " << i << " hitnya " << cur[i - 1] - 1 << "\n";
for(ll j = 0; j < (ll)res.first.size(); j++) {
// cout << "hil " << res.first[j] << "\n";
but[res.first[j]]--;
}
if(res.se == 0 && res.first.size() == 1) {
cur.pb(cur[i - 1] - 1);
} else {
cur.pb(cur[i - 1] - 2);
}
for(int j = 0; j < but[i]; j++) {
transaction(cur[i]);
}
// cout << cur[i] << "@\n";
}
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... |