253362026-02-19 11:25:00KevinRaktárba szállítás (45 pont)cpp17Wrong answer 3/459ms2404 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    ll N, K, C;
    cin >> N >> K >> C;

    vector<ll> parent(N + 1);
    vector<ll> A(N + 1);
    vector<vector<int>> children(N + 1);

    for (int i = 1; i <= N; i++) {
        cin >> parent[i] >> A[i];
        if (i != 1) {
            children[parent[i]].push_back(i);
        }
    }

    // Részfa összegek számítása DFS-sel
    vector<ll> subtree(N + 1, 0);

    // Iteratív DFS (nehogy stack overflow legyen 20000-nél)
    vector<int> order;
    stack<int> st;
    st.push(1);

    while (!st.empty()) {
        int v = st.top();
        st.pop();
        order.push_back(v);
        for (int c : children[v]) {
            st.push(c);
        }
    }

    // Postorder feldolgozás
    reverse(order.begin(), order.end());

    for (int v : order) {
        subtree[v] = A[v];
        for (int c : children[v]) {
            subtree[v] += subtree[c];
        }
    }

    // Minden városra számoljuk mennyit lehet vinni
    vector<ll> values;
    for (int i = 2; i <= N; i++) { // 1-esből nem indulunk
        values.push_back(min(subtree[i], C));
    }

    sort(values.rbegin(), values.rend());

    ll result = 0;
    for (int i = 0; i < K && i < (int)values.size(); i++) {
        result += values[i];
    }

    cout << result << "\n";
}
SubtaskSumTestVerdictTimeMemory
base3/45
1Wrong answer0/01ms508 KiB
2Wrong answer0/04ms1096 KiB
3Wrong answer0/11ms316 KiB
4Wrong answer0/11ms316 KiB
5Wrong answer0/11ms356 KiB
6Wrong answer0/11ms324 KiB
7Wrong answer0/11ms316 KiB
8Wrong answer0/11ms316 KiB
9Accepted1/16ms1312 KiB
10Accepted1/16ms1076 KiB
11Accepted1/14ms1076 KiB
12Wrong answer0/11ms316 KiB
13Wrong answer0/11ms316 KiB
14Wrong answer0/12ms316 KiB
15Wrong answer0/12ms316 KiB
16Wrong answer0/12ms316 KiB
17Wrong answer0/12ms332 KiB
18Wrong answer0/12ms316 KiB
19Wrong answer0/12ms316 KiB
20Wrong answer0/11ms500 KiB
21Wrong answer0/26ms1332 KiB
22Wrong answer0/24ms1180 KiB
23Wrong answer0/26ms1272 KiB
24Wrong answer0/39ms2404 KiB
25Wrong answer0/39ms2100 KiB
26Wrong answer0/34ms1332 KiB
27Wrong answer0/34ms1332 KiB
28Wrong answer0/38ms2144 KiB
29Wrong answer0/38ms2100 KiB
30Wrong answer0/38ms2240 KiB