编程题
### 问题描述
在一座神秘的森林里,生活着 $n$ 个生物,所有生物的关系共同构成一个树状的家族结构,每一个生物都有一个特殊的能量值。森林中的探险者想要研究这些生物的能量分布,因此他经常会询问一个生物及其它的子孙们的能量总和是多少。
你的任务是帮助探险者快速回答这些查询。
### 输入格式
第一行输入一个正整数 $n$ 表示生物数量。
接下来的 $n$ 行,每行一个整数,表示每个生物的能量值。
接下来的 $n-1$ 行,每行两个整数 $u, v$,$1 \le u, v \le n$ 且 $u \neq v$,表示生物 $u$ 是生物 $v$ 的直系祖先。
接下来一个正整数 $q$,表示探险者的查询数量。
接下来的 $q$ 行,每行一个整数 $x$,表示要查询的生物编号。
### 输出格式
对于每次查询,输出一个整数,表示该生物及其所有子孙的能量总和。
### 样例输入
```
5
10
20
30
40
50
1 2
1 3
3 4
3 5
2
1
3
```
### 样例输出
```
150
120
```
### 样例说明
在第一个查询中,生物 $1$ 及其所有子孙的能量为: $10 + 20 + 30 + 40 + 50 = 150$。
在第二个查询中,生物 $3$ 及其所有子孙的能量为: $30 + 40 + 50 = 120$。
### 测评数据规模
$1 \le n, q \le 10^5$,每个生物的能量值在 $1$ 到 $10^5$ 之间。