151592025-02-14 11:39:39BencuTevefarmcpp17Hibás válasz 25/5093ms6080 KiB
#include <bits/stdc++.h>


using namespace std;
#define int long long
int L[100001],n,m,ma,M[100001];
struct Bencu {
    vector<int>fiuk;
    int s=0;
}a[100001];
int maxi (int x) {
    if (a[x].s==0) return L[x];
    else {
    int p=0;
    for (int i=0; i<a[x].s; i++) p=p+maxi(a[x].fiuk[i]);
    if (L[x]>p) return L[x];
    else return p;
    }
}

signed main()
{
    ifstream f("be.in");
    cin>>n;
    for (int i=1; i<=n; i++) cin>>L[i];
    for (int i=2; i<=n; i++) {
        int x;
        cin>>x;
        a[x].s++;
        a[x].fiuk.push_back(i);
    }
    cout<<maxi(1);
    /*for (int i=1; i<=n; i++) {
        cout<<i<<": ";
        for (int j=0; j<a[i].s; j++) cout<<a[i].fiuk[j]<<"-"<<maxi(a[i].fiuk[j])<<"  ";
        cout<<endl;
    }*/
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base25/50
1Hibás válasz0/03ms3380 KiB
2Hibás válasz0/04ms3380 KiB
3Részben helyes2/44ms3384 KiB
4Részben helyes2/44ms3380 KiB
5Részben helyes2/44ms3380 KiB
6Részben helyes2/44ms3380 KiB
7Részben helyes2/439ms4660 KiB
8Részben helyes3/646ms5076 KiB
9Részben helyes3/657ms5172 KiB
10Részben helyes3/664ms5488 KiB
11Részben helyes3/683ms5904 KiB
12Részben helyes3/693ms6080 KiB