#include <bits/stdc++.h>
using namespace std;
#define ll long long int
#define ld int
#define ii pair<int, int>
#define iii pair<ii,int>
#define vii vector<pair<int, int> >
#define vi vector<int>
#define vvi vector<vector<int> >
#define vs vector<string>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define nu 1000000
#define mod 1000000007
#define inf pow(10,8)
#define h pow(10,-8)
#define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
ii dfs(int u, vvi &adj_list, int &max_diff, vi &net_worth)
{
int max_des_worth = net_worth[u], min_des_worth = net_worth[u];
for (auto v : adj_list[u])
{
ii pair_worth = dfs(v, adj_list, max_diff, net_worth);
max_des_worth = max(max_des_worth, pair_worth.fi);
min_des_worth = min(min_des_worth, pair_worth.se);
}
max_diff = max(max_diff, max_des_worth-net_worth[u]);
max_diff = max(max_diff, net_worth[u]-min_des_worth);
// cout << u << ": " << max_des_worth << ": " << net_worth[u] << '\n';
return mp(max_des_worth, min_des_worth);
}
int main()
{
fastio;
int n, root, max_diff = 0, parent;
cin >> n;
vi net_worth(n);
vvi adj_list(n);
for (int i = 0; i < n; ++i)
{
cin >> net_worth[i];
}
for (int i = 0; i < n; ++i)
{
cin >> parent;
if (parent == -1)
{
root = i;
}
else
{
adj_list[parent-1].pb(i);
}
}
// cout << root << ' ';
// for (int i = 0; i < n; ++i)
// {
// cout << i << ": ";
// for (auto v : adj_list[i])
// {
// cout << v << ' ';
// }
// cout << '\n';
// }
dfs(root, adj_list, max_diff, net_worth);
cout << max_diff << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nIGludAojZGVmaW5lIGxkIGludAojZGVmaW5lIGlpIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgaWlpIHBhaXI8aWksaW50PgojZGVmaW5lIHZpaSB2ZWN0b3I8cGFpcjxpbnQsIGludD4gPgojZGVmaW5lIHZpIHZlY3RvcjxpbnQ+CiNkZWZpbmUgdnZpIHZlY3Rvcjx2ZWN0b3I8aW50PiA+CiNkZWZpbmUgdnMgdmVjdG9yPHN0cmluZz4KI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIG51IDEwMDAwMDAKI2RlZmluZSBtb2QgMTAwMDAwMDAwNwojZGVmaW5lIGluZiBwb3coMTAsOCkKI2RlZmluZSBoIHBvdygxMCwtOCkKI2RlZmluZSBmYXN0aW8gaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApO2NvdXQudGllKDApCgppaSBkZnMoaW50IHUsIHZ2aSAmYWRqX2xpc3QsIGludCAmbWF4X2RpZmYsIHZpICZuZXRfd29ydGgpCnsKCWludCBtYXhfZGVzX3dvcnRoID0gbmV0X3dvcnRoW3VdLCBtaW5fZGVzX3dvcnRoID0gbmV0X3dvcnRoW3VdOwoJZm9yIChhdXRvIHYgOiBhZGpfbGlzdFt1XSkKCXsKCQlpaSBwYWlyX3dvcnRoID0gZGZzKHYsIGFkal9saXN0LCBtYXhfZGlmZiwgbmV0X3dvcnRoKTsKCQltYXhfZGVzX3dvcnRoID0gbWF4KG1heF9kZXNfd29ydGgsIHBhaXJfd29ydGguZmkpOwoJCW1pbl9kZXNfd29ydGggPSBtaW4obWluX2Rlc193b3J0aCwgcGFpcl93b3J0aC5zZSk7Cgl9CgkKCW1heF9kaWZmID0gbWF4KG1heF9kaWZmLCBtYXhfZGVzX3dvcnRoLW5ldF93b3J0aFt1XSk7CgltYXhfZGlmZiA9IG1heChtYXhfZGlmZiwgbmV0X3dvcnRoW3VdLW1pbl9kZXNfd29ydGgpOwoKCS8vIGNvdXQgPDwgdSA8PCAiOiAiIDw8IG1heF9kZXNfd29ydGggPDwgIjogIiA8PCBuZXRfd29ydGhbdV0gPDwgJ1xuJzsKCXJldHVybiBtcChtYXhfZGVzX3dvcnRoLCBtaW5fZGVzX3dvcnRoKTsJCn0KCmludCBtYWluKCkKewoJZmFzdGlvOwoJaW50IG4sIHJvb3QsIG1heF9kaWZmID0gMCwgcGFyZW50OwoJY2luID4+IG47CgoJdmkgbmV0X3dvcnRoKG4pOwoJdnZpIGFkal9saXN0KG4pOwoKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKQoJewoJCWNpbiA+PiBuZXRfd29ydGhbaV07Cgl9Cglmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkKCXsKCQljaW4gPj4gcGFyZW50OwoJCWlmIChwYXJlbnQgPT0gLTEpCgkJewoJCQlyb290ID0gaTsKCQl9CgkJZWxzZQoJCXsKCQkJYWRqX2xpc3RbcGFyZW50LTFdLnBiKGkpOwoJCX0KCX0KCgkvLyBjb3V0IDw8IHJvb3QgPDwgJyAnOwoJLy8gZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpCgkvLyB7CgkvLyAJY291dCA8PCBpIDw8ICI6ICI7CgkvLyAJZm9yIChhdXRvIHYgOiBhZGpfbGlzdFtpXSkKCS8vIAl7CgkvLyAJCWNvdXQgPDwgdiA8PCAnICc7CgkvLyAJfQoJLy8gCWNvdXQgPDwgJ1xuJzsKCS8vIH0KCglkZnMocm9vdCwgYWRqX2xpc3QsIG1heF9kaWZmLCBuZXRfd29ydGgpOwoKCWNvdXQgPDwgbWF4X2RpZmYgPDwgJ1xuJzsKfQk=