제출 #1249781

#제출 시각아이디문제언어결과실행 시간메모리
1249781thabumi선물 (IOI25_souvenirs)C++20
25 / 100
11 ms412 KiB
#ifdef EVAL
#include "souvenirs.h"
#endif
#include <bits/stdc++.h>
using namespace std;
#ifndef EVAL
pair<vector<int>, long long> transaction(long long M);
#endif
void buy_souvenirs(int N, long long P0) {
    if (N == 2) {
        transaction(P0 - 1);
        return;
    }
    if (N == 3) {
        auto [v, x] = transaction(P0 - 1);
        if (v.size() == 2) {
            long long sum = P0 - 1 - x;
            transaction(sum / 2);
        }
        else {
            long long P1 = P0 - 1 - x;
            transaction(P1 - 1);
            transaction(P1 - 1);
        }
        return;
    }
    pair<vector<int>, long long> ans;
    int cur = 1;
    int cnt = 0;
    long long cur_q = P0 - 1;
    while (true) {
        ans = transaction(cur_q);
        if (!(ans.second == 0 && ans.first.size() == 1 && ans.first[0] == cur)) {
            break;
        }
        cnt++;
        if (cnt == cur) {
            cur++;
            cnt = 0;
            cur_q--;
            if (cur == N) {
                return;
            }
        }
    }
}
#ifndef EVAL
pair<vector<int>, long long> transaction(long long M) {
    return {{}, M};
}
#endif
#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...