Submission #1257457

#TimeUsernameProblemLanguageResultExecution timeMemory
1257457math_rabbit_1028Souvenirs (IOI25_souvenirs)C++20
21 / 100
12 ms412 KiB
#include "souvenirs.h"
#include <bits/stdc++.h>
using namespace std;

vector<long long> P;
vector<int> cnt;

void update(vector<int> &ls) {
    for (int x : ls) cnt[x]++;
}

void buy_souvenirs(int N, long long P0) {
    // pair<vector<int>, long long> res = transaction(3);
    P.resize(N);
    P[0] = P0;
    cnt.resize(N);

    for (int i = 1; i < N; i++) {
        pair<vector<int>, long long> res = transaction(P[i-1]-1);
        update(res.first);
        if (res.first.size() > 1 || res.second > 0) {
            P[i] = P[i-1]-2;
        }
        else P[i] = P[i-1]-1;
    }

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