Submission #1286013

#TimeUsernameProblemLanguageResultExecution timeMemory
1286013takoshanavaSouvenirs (IOI25_souvenirs)C++20
7 / 100
13 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(res.second + 1); 
        }
        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 {
            P[i] = P[i - 1] - res.second - 1;
        }
    }

    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...