/*
* Starting with the name of almighty ALLAH
*/
#include "souvenirs.h"
#include <bits/stdc++.h>
using namespace std;
// int N = 6;
// vector<long long> P = {10, 8, 7, 5, 3, 1};
// vector<int> Q(N);
// pair<vector<int>, long long> transaction(long long M) {
// vector<int> L;
// long long R = M;
// for (int i = 0; i < N; i++) {
// if (R >= P[i]) {
// R -= P[i];
// Q[i]++;
// L.push_back(i);
// }
// }
// return {L, R};
// }
void buy_souvenirs(int N, long long P0) {
vector<long long> left(N),P(N);
for(long long i = 0; i < N; ++i) left[i] = i;
P[0] = P0;
long long ro = 0;
for (long long i = 1; i < N-1; ++i)
{
pair<vector<int>,long long> res = transaction(P[i-1]-1);
if(res.first.size() == 1) {
long long ret = res.second;
P[i] = (P[i-1] - 1 - ret);
left[P[i]]--;
} else {
P[i] = (P[i-1] - 1 - 1);
left[P[i]]--;
ro++;
P[N-1] = 1;
}
}
for (long long i = 0; i < left.size()-1; ++i)
{
long long x = left[i];
for (long long j = 0; j < x; ++j)
{
transaction(P[i]);
}
}
for (long long i = 0; i < ((N-1) - ro); ++i)
{
transaction(1);
}
}
// int main() {
// buy_souvenirs(6,10);
// }
# | 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... |