제출 #1258102

#제출 시각아이디문제언어결과실행 시간메모리
1258102chr34선물 (IOI25_souvenirs)C++20
0 / 100
0 ms412 KiB
#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 = 1; i < N; i++) {
        long long lo = 1, hi = P[i-1] - 1, found = -1;
        while (lo <= hi) {
            long long mid = (lo + hi) / 2;
            auto res = transaction(mid);
            if (res.first.empty()) {
                lo = mid + 1;
            } else {
                int type = res.first[0];
                if (type == i) {
                    found = mid;
                    hi = mid - 1; 
                } else if (type < i) {
                    lo = mid + 1;
                } else {
                    hi = mid - 1;
                }
            }
        }
        P[i] = found;
    }

    for (int i = 1; i < N; i++) {
        for (int k = 0; k < i; k++) {
            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...