Submission #1286014

#TimeUsernameProblemLanguageResultExecution timeMemory
1286014takoshanavaSouvenirs (IOI25_souvenirs)C++20
7 / 100
12 ms332 KiB
#include "souvenirs.h"
#include <bits/stdc++.h>
using namespace std;

void buy_souvenirs(int N, long long P0) {
    if (N == 2) {
        transaction(P0 - 1);
        return;
    }

    if (P0 == N) {
        for (int i = 1; i < N; i++) {
            for (int j = 0; j < i; j++) transaction(N - i);
        }
        return;
    }

    if (N == 3) {
        auto res = transaction(P0 - 1);
        if ((int)res.first.size() == 1 && res.first[0] == 1) {
            transaction(P0 - 2);
        } else {
            transaction(P0 - 2);
            transaction(P0 - 2);
        }
        return;
    }

    vector<long long> P(N);
    P[0] = P0;
    for (int i = 1; i < N; i++) {
        auto res = transaction(P[i - 1] - 1);
        if ((int)res.first.size() == 1) {
            P[i] = P[i - 1] - 1;
        } else {
            long long spent = (P[i - 1] - 1) - res.second;
            P[i] = spent;
        }
    }

    for (int i = 1; i < N; i++)
        for (int j = 0; j < i; j++)
            transaction(P[i] - 1);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...