#include <fstream>
#include <cmath>
#include <vector>

using namespace std;

ifstream fin("input.txt");
ofstream fout("output.txt");

int N,temp,S;
vector <int> grafo[100001];
int monete[100001];

int dfs(int V) {
	int M=monete[V]-1;
	for(unsigned int i=0;i<grafo[V].size();i++) M+=dfs(grafo[V][i]);
	S+=abs(M);
	return M;
}

int main() {
	fin>>N;
	for(int i=1;i<=N;i++) fin>>monete[i];
	for(int i=2;i<=N;i++) {
		fin>>temp;
		grafo[temp].push_back(i);
	}
	
	dfs(1);
	fout<<S;
}