Pagini recente » Cod sursa (job #509878) | Cod sursa (job #2300150) | Cod sursa (job #1323107) | Cod sursa (job #1361667) | Cod sursa (job #2485408)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("arbvalmax.in");
ofstream g("arbvalmax.out");
const int maxn = 3e5+5;
int n, m, i, v[maxn];
vector <int> a[maxn];
int dfs1(int x) {
int ans = val[x];
for(auto u : a[x]) {
ans = max(ans, dfs1(u));
}
return jos[x] = ans;
}
void dfs2(int x, int now) {
int ans = val[x];
ans = max(ans, now);
sus[x] = ans;
for(auto u : a[x]) {
dfs2(u, ans);
}
}
int dinam(int x) {
if(d)
}
int main()
{
f >> n >> m;
for(i = 2; i <= n; i ++) {
f >> v[i];
a[v[i]].push_back(i);
}
for(i = 1; i <= n; i ++) {
f >> val[i];
}
part1();
f.close(); g.close();
return 0;
}