/* 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
{
{
// your code goes here
Scanner in
= new Scanner
(System.
in); int n = in.nextInt();
int arr[] = new int[n+1];
for(int i =1;i<=n;i++){
G[i] = new ArrayList<>();
}
int i = 1;
while(i<=n-1){
int x = in.nextInt();
int y = in.nextInt();
G[x].add(y);
G[y].add(x);
i++;
}
i =1;
while(i<=n){
arr[i] = in.nextInt();
i++;
}
Queue<Integer> q = new LinkedList<>();
int[] used = new int[n+1];
used[1] = 1;
q.add(1);
int[] answer = new int[n+1];
answer[1] = arr[1];
while(!q.isEmpty()){
int top = q.poll();
int c =0;
for(int u:G[top]){
if(used[u] == 0){
c++;
used[u] =1;
q.add(u);
if(arr[u] == 1){
answer[u] = answer[top] +1;
}
else{
answer[u] = answer[top];
}
}
}
}
i =1;
while(i<=n){
System.
out.
println(answer
[i
]); i++;
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQlTY2FubmVyIGluID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKCQlpbnQgbiA9IGluLm5leHRJbnQoKTsKCQkKCQlpbnQgYXJyW10gPSBuZXcgaW50W24rMV07CgkJCgkJTGlzdDxJbnRlZ2VyPltdIEcgPSBuZXcgQXJyYXlMaXN0W24rMV07CgkJZm9yKGludCBpID0xO2k8PW47aSsrKXsKCQkJR1tpXSA9IG5ldyBBcnJheUxpc3Q8PigpOwoJCX0KCQkKCQlpbnQgaSA9IDE7CgkJd2hpbGUoaTw9bi0xKXsKCQkJaW50IHggPSBpbi5uZXh0SW50KCk7CgkJCWludCB5ID0gaW4ubmV4dEludCgpOwoJCQlHW3hdLmFkZCh5KTsKCQkJR1t5XS5hZGQoeCk7CgkJCWkrKzsKCQl9CgkJCgkJaSA9MTsKCQl3aGlsZShpPD1uKXsKCQkJYXJyW2ldID0gaW4ubmV4dEludCgpOwoJCQlpKys7CgkJfQoJCQoJCVF1ZXVlPEludGVnZXI+IHEgPSBuZXcgTGlua2VkTGlzdDw+KCk7CgkJaW50W10gdXNlZCA9IG5ldyBpbnRbbisxXTsKCQl1c2VkWzFdID0gMTsKCQlxLmFkZCgxKTsKCQlpbnRbXSBhbnN3ZXIgPSBuZXcgaW50W24rMV07CgkJYW5zd2VyWzFdID0gYXJyWzFdOwoJCQoJCXdoaWxlKCFxLmlzRW1wdHkoKSl7CgkJCWludCB0b3AgPSBxLnBvbGwoKTsKCQkJaW50IGMgPTA7CgkJCQoJCQlmb3IoaW50IHU6R1t0b3BdKXsKCQkJCWlmKHVzZWRbdV0gPT0gMCl7CgkJCQkJYysrOwoJCQkJCXVzZWRbdV0gPTE7CgkJCQkJcS5hZGQodSk7CgkJCQkJCgkJCQkJaWYoYXJyW3VdID09IDEpewoJCQkJCQlhbnN3ZXJbdV0gPSBhbnN3ZXJbdG9wXSArMTsKCQkJCQl9CgkJCQkJZWxzZXsKCQkJCQkJYW5zd2VyW3VdID0gYW5zd2VyW3RvcF07CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJCQoJCWkgPTE7CgkJd2hpbGUoaTw9bil7CgkJCVN5c3RlbS5vdXQucHJpbnRsbihhbnN3ZXJbaV0pOwoJCQlpKys7CgkJfQoJfQp9