#include "souvenirs.h"
#include<bits/stdc++.h>
using namespace std;
void buy_souvenirs(int N, long long P0){
if(N == 2){
pair<vector<int>, long long> res = transaction(P0 - 1);
return;
}
else if(N == 3){
pair<vector<int>, long long> res = transaction(P0 - 1);
if((int)res.first.size() == 1){
long long B = P0 - 1 - res.second;
pair<vector<int>, long long> res2 = transaction(B - 1);
pair<vector<int>, long long> res3 = transaction(B - 1);
}
else{
long long sum = P0 - 1 - res.second;
long long thing = sum/2;
pair<vector<int>, long long> res2 = transaction(thing);
}
}
else{
map<long long, long long> mp;
long long cur = P0;
for(int i = 1; i < N; i++){
if(mp.find(i) != mp.end() && mp[i] == i){
continue;
}
if(i == N - 1){
cur--;
pair<vector<int>, long long> res = transaction(cur);
sort(res.first.begin(), res.first.end());
reverse(res.first.begin(), res.first.end());
if(res.first[0] == i){
for(long long x : res.first){
mp[x]++;
}
for(int j = 0; j < i - mp[i]; j++){
pair<vector<int>, long long> res2 = transaction(cur);
}
}
return;
}
cur -= 2;
pair<vector<int>, long long> res = transaction(cur);
sort(res.first.begin(), res.first.end());
reverse(res.first.begin(), res.first.end());
if(res.first[0] == i){
for(long long x : res.first){
mp[x]++;
}
for(int j = 0; j < i - mp[i]; j++){
pair<vector<int>, long long> res2 = transaction(cur);
}
}
else{
for(long long x : res.first){
mp[x]++;
}
cur++;
for(int j = 0; j < i - mp[i]; j++){
pair<vector<int>, long long> res2 = transaction(cur);
}
}
}
}
}
# | 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... |