/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Scanner sc
= new Scanner
(System.
in);
int n = sc.nextInt(); // number of nodes
List
<Integer
>[] child
= new List[n
+ 1]; for (int i = 1; i <= n; i++) {
child[i] = new ArrayList<>();
}
// Read n-1 edges
for (int i = 1; i < n; i++) {
int u = sc.nextInt();
int v = sc.nextInt();
child[u].add(v);
child[v].add(u);
}
int [] value = new int[n+1];
for(int i = 1;i <= n;i++){
value[i] = sc.nextInt();
}
int[] used = new int[n + 1];
int[] parent = new int[n + 1];
int[] sum = new int[n + 1];
dfs(child, 1,value,used, parent,sum);
}
public static void dfs(List<Integer>[] child, int node,int [] value,int[] used, int[] parent, int[] sum) {
used[node] = 1;
for (int v : child[node]) {
if (used[v] == 0) {
parent[v] = node;
dfs(child, v,value,used, parent,sum);
}
}
int subSum = 0;
for (int v : child[node]) {
if (v == parent[node]) continue;
subSum += sum[v];
}
sum[node] = value[node] + subSum;
System.
out.
println(sum
[node
]); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCSBTY2FubmVyIHNjID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKCiAgICAgICAgaW50IG4gPSBzYy5uZXh0SW50KCk7IC8vIG51bWJlciBvZiBub2RlcwogICAgICAgIExpc3Q8SW50ZWdlcj5bXSBjaGlsZCA9IG5ldyBMaXN0W24gKyAxXTsKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICAgICAgY2hpbGRbaV0gPSBuZXcgQXJyYXlMaXN0PD4oKTsKICAgICAgICB9CgogICAgICAgIC8vIFJlYWQgbi0xIGVkZ2VzCiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgaW50IHUgPSBzYy5uZXh0SW50KCk7CiAgICAgICAgICAgIGludCB2ID0gc2MubmV4dEludCgpOwogICAgICAgICAgICBjaGlsZFt1XS5hZGQodik7CiAgICAgICAgICAgIGNoaWxkW3ZdLmFkZCh1KTsKICAgICAgICB9CiAgICAgICAgaW50IFtdIHZhbHVlID0gbmV3IGludFtuKzFdOwoKICAgICAgICBmb3IoaW50IGkgPSAxO2kgPD0gbjtpKyspewogICAgICAgICAgICB2YWx1ZVtpXSA9IHNjLm5leHRJbnQoKTsKICAgICAgICB9CgogICAgICAgIGludFtdIHVzZWQgPSBuZXcgaW50W24gKyAxXTsKICAgICAgICBpbnRbXSBwYXJlbnQgPSBuZXcgaW50W24gKyAxXTsKICAgICAgICBpbnRbXSBzdW0gPSBuZXcgaW50W24gKyAxXTsKCgogICAgICAgIGRmcyhjaGlsZCwgMSx2YWx1ZSx1c2VkLCBwYXJlbnQsc3VtKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgZGZzKExpc3Q8SW50ZWdlcj5bXSBjaGlsZCwgaW50IG5vZGUsaW50IFtdIHZhbHVlLGludFtdIHVzZWQsIGludFtdIHBhcmVudCwgaW50W10gc3VtKSB7CiAgICAgICAgdXNlZFtub2RlXSA9IDE7CgogICAgICAgIGZvciAoaW50IHYgOiBjaGlsZFtub2RlXSkgewogICAgICAgICAgICBpZiAodXNlZFt2XSA9PSAwKSB7CiAgICAgICAgICAgICAgICBwYXJlbnRbdl0gPSBub2RlOwogICAgICAgICAgICAgICAgZGZzKGNoaWxkLCB2LHZhbHVlLHVzZWQsIHBhcmVudCxzdW0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpbnQgc3ViU3VtID0gMDsKICAgICAgICBmb3IgKGludCB2IDogY2hpbGRbbm9kZV0pIHsKICAgICAgICAgICAgaWYgKHYgPT0gcGFyZW50W25vZGVdKSBjb250aW51ZTsKICAgICAgICAgICAgc3ViU3VtICs9IHN1bVt2XTsKICAgICAgICB9CgogICAgICAgIHN1bVtub2RlXSA9IHZhbHVlW25vZGVdICsgc3ViU3VtOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzdW1bbm9kZV0pOwoJfQp9