Submission #1319338

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

pair<vector<int>, long long> transaction(long long M);

void buy_souvenirs(int N, long long P0) {
    vector<long long> P(N);
    P[0] = P0;

    for (int i = 0; i + 1 < N; ++i) {
        long long try1 = P[i] - 1;
        if (try1 < 1) try1 = 1;
        auto res = transaction(try1);
        vector<int> L = res.first;
        long long R = res.second;
        bool bought_ip1 = false;
        for (int t : L) if (t == i+1) { bought_ip1 = true; break; }
        if (bought_ip1 && R == 0) {
            P[i+1] = P[i] - 1;
        } else {
            long long try2 = P[i] - 2;
            if (try2 < 1) try2 = 1;
            auto res2 = transaction(try2);
            P[i+1] = P[i] - 2;
        }
    }

    for (int i = 1; i < N; ++i) {
        for (int cnt = 0; cnt < i; ++cnt) {
            transaction(P[i]); 
        }
    }
}
#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...