#include<cstdio>
#include<cmath>
#include<cstring>
#include<vector>
#define N (int)(1e7+5)
using namespace std;
int fa[N],va[N],lazy[N];
bool vis[N];
int n,u,v;
long long sum;
long long dfs(int i)
{
if(vis[i])
return 0;
vis[i]=1;
if(fa[i]==0){
lazy[i]+=va[i];
return abs(lazy[i]);
}
long long s=0;
va[i]-=lazy[fa[i]];
lazy[i]+=(lazy[fa[i]]+va[i]);
s+=abs(va[i]);
return s;
}
int main()
{
scanf("%d",&n);
for(int i=0;i<n-1;++i){
scanf("%d%d",&u,&v);
fa[v]=u;
}
for(int i=1;i<=n;++i)
scanf("%d",&va[i]);
for(int i=1;i<=n;++i)
sum+=dfs(i);
printf("%lld\n",sum);
}