#include <bits/stdc++.h>
using namespace std;
vector<int> ertek;
vector<int> apa;
vector<vector<int> > gyerekek;
int kereses(int x) {
if (gyerekek[x].size()>0) {
int epp=ertek[x];
int masik=0;
for (int sz : gyerekek[x]) {
masik+=kereses(sz);
}
return max(epp, masik);
}
else {
return ertek[x];
}
}
int main() {
int n;
cin >> n;
ertek.resize(n);
for (int i=0; i<n; i++) {
cin >> ertek[i];
}
apa.resize(n);
apa[0]=0;
gyerekek.assign(n, vector<int>());
for (int i=1; i<n; i++) {
cin >> apa[i];
apa[i]--;
gyerekek[apa[i]].push_back(i);
}
cout << kereses(0);
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 19/50 | ||||||
1 | Hibás válasz | 0/0 | 3ms | 1812 KiB | |||
2 | Hibás válasz | 0/0 | 3ms | 2176 KiB | |||
3 | Részben helyes | 2/4 | 3ms | 2212 KiB | |||
4 | Részben helyes | 2/4 | 3ms | 2456 KiB | |||
5 | Részben helyes | 2/4 | 3ms | 2520 KiB | |||
6 | Részben helyes | 2/4 | 3ms | 2564 KiB | |||
7 | Részben helyes | 2/4 | 39ms | 7240 KiB | |||
8 | Részben helyes | 3/6 | 48ms | 8236 KiB | |||
9 | Részben helyes | 3/6 | 56ms | 9400 KiB | |||
10 | Részben helyes | 3/6 | 65ms | 10524 KiB | |||
11 | Hibás válasz | 0/6 | 87ms | 11272 KiB | |||
12 | Hibás válasz | 0/6 | 97ms | 12324 KiB |