45502023-03-29 14:49:02AblablablaTevefarmcpp17Hibás válasz 19/5093ms12288 KiB
#include <bits/stdc++.h>

using namespace std;

typedef pair<int, string> pis;

int n;
vector<int> teve;
vector<vector<int>> graf;
vector<bool> jelolt;

int vizsgal(int helyzet){
    int osszeg = 0;
    for(int kov : graf[helyzet]){
        osszeg += vizsgal(kov);
    }

    if(osszeg < teve[helyzet]){
        jelolt[helyzet] = true;
        osszeg = teve[helyzet];
    }

    return osszeg;
}

int main()
{
    cin >> n;
    teve.assign(n, 0);
    graf.assign(n, vector<int>(0, 0));
    jelolt.assign(n, false);

    for(int i = 0; i < n; i++){
        cin >> teve[i];
    }

    for(int i = 0; i < n - 1; i++){
        int a;
        cin >> a;
        graf[a - 1].push_back(i + 1);
    }
/*
    for(int i = 0; i < n; i++){
        cout << i << ": ";
        for(int x : graf[i]){
            cout << x << " ";
        }

        cout << "\n";
    }
*/
    int valasz = vizsgal(0);
    cout << valasz << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base19/50
1Hibás válasz0/03ms1812 KiB
2Hibás válasz0/03ms2228 KiB
3Részben helyes2/43ms2660 KiB
4Részben helyes2/43ms2536 KiB
5Részben helyes2/43ms2676 KiB
6Részben helyes2/43ms2788 KiB
7Részben helyes2/439ms7016 KiB
8Részben helyes3/646ms8268 KiB
9Részben helyes3/654ms9264 KiB
10Részben helyes3/661ms10168 KiB
11Hibás válasz0/685ms11392 KiB
12Hibás válasz0/693ms12288 KiB