Submission #1250203

#TimeUsernameProblemLanguageResultExecution timeMemory
1250203ezzzaySouvenirs (IOI25_souvenirs)C++20
0 / 100
0 ms412 KiB
#include "souvenirs.h"
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define ff first
#define ss second

void buy_souvenirs(int n, ll p0) {
    ll pl = max(1ll, p0 - 2ll * (n - 1));
    vector<ll> p(n), cnt(n);
    while (pl < p0) {
        auto res = transaction(pl);
        if (res.ff.size() == 1) {
            p[n - 1] = pl;
            break;
        }
        pl++;
    }
    if (p[n - 1] == 0) {
        p[n - 1] = p0 - 1;
    }

    cnt[n - 1]++;
    for (int i = n - 2; i >= 0; i--) {
        auto res = transaction(p[i + 1] + 1);
        if (res.ff[0] == i) {
            cnt[i]++;
            p[i] = p[i + 1] + 1;
        } else {
            cnt[i + 1]++;
            p[i] = p[i + 1] + 2;
        }
    }
    for (int i = 1; i < n; i++) {
        for (int j = cnt[i]; j < i; j++) {
            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...