C1926 [Wannafly冬令营2018Day4]两条路径

内存限制:1024 MB 时间限制:2000 ms

题目描述

树是一个$n$个点,$n-1$条边的连通图。树上的路径指是某两个点间唯一的最短路上点的集合。

现在给定一棵树,树上每个点有一个权值。权值都是整数,且是$2$的幂次,$2$的幂次的相反数,或者$0$。给定一个点$x$,要求画出两条树上的路径,使得它们的交恰为$x$,且它们的并中的点的权值和最大。输出这个权值和。

输入格式

第一行一个正整数$n$表示树的边数($n\le 100000$)。接下来一行$n$个整数表示点$1,2,\ldots,n$的权值。正数$k$表示权值为$2^{k-1}$,负数$-k$表示权值为$-2^{k-1}$,$0$表示权值为$0$。这一行的数字绝对值不超过$30$。接下来$n-1$行,每行两个正整数,表示树的边。接下来一行一个正整数$Q$表示询问个数($Q\le 20$)。接下来$Q$行每行为一个询问,包含一个正整数$x$($1\le x\le n$),代表树上的一个点。

输出

对于每组询问,按顺序输出最大权值和。按照二进制输出。

样例

样例输入 1

5 -5 1 1 1 1 1 2 1 3 1 4 1 5 5 1 2 3 4 5

样例输出 1

-1100 1 1 1 1

提示