Submission #1250542

#TimeUsernameProblemLanguageResultExecution timeMemory
1250542tranvinhhuy2010Souvenirs (IOI25_souvenirs)C++20
Compilation error
0 ms0 KiB
#include "souvenirs.h"
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

int n, cnt[105];
ll p[105];

ll adu_calculate(ll s, int k) {
    s += k*(k-1)/2 + k - 1;
    return s/k;
}

void adu_build(ll money) {
    auto [a, remain] = transaction(money);
    int k = a.size();
    ll sum = money - remain;

    for (int i : a)
        cnt[i]++;

    if (k>1) {
        ll x = adu_calculate(sum, k);
        adu_build(x-1);
    }

    while (a.size()>1) {
        sum -= p[a.back()];
        a.pop_back();
    }

    p[a[0]] = sum;

    if (a[0]+1<n && p[a[0]+1]==0) adu_build(p[a[0]]-1);
}

void adu_complete() {
    for (int i=1; i<n; i++) {
        while (cnt[i]<i) {
            transaction(p[i]);
            cnt[i]++;
        }
    }
}

void buy_souvenirs(int N, ll P0) {
    n = N;
    p[0] = P0;
    adu_build(P0-1);
    adu_complete();
}

int main() {
    buy_souvenirs(P.size(), P[0]);

    for (int i=1; i<n; i++)
        cout << cnt[i] << ' ';

    return 0;
}

Compilation message (stderr)

souvenirs.cpp: In function 'int main()':
souvenirs.cpp:56:19: error: 'P' was not declared in this scope
   56 |     buy_souvenirs(P.size(), P[0]);
      |                   ^