题目描述
给定一棵有根树 T,包含 n 个顶点和 n−1 条有向边。
对于顶点 i,其权值为 ai。如果存在一条从顶点 y 出发、到顶点 x 结束的路径,且该路径仅通过有向边,则称顶点 x 可以从顶点 y 到达。保证所有顶点都可以从根节点到达。
给定 m 对顶点 (ui,vi),满足在原树中 ui 可从 vi 到达。现在,将添加新的有向边 ui→vi 以形成一个新的图。
定义一个顶点集合的子集 S(可以为空)为 神奇 的,当且仅当对于 S 中的每个元素 x,在新图中所有可从 x 到达的顶点都在 S 中。神奇 集合 S 的权值定义为 S 中所有元素的权值之和。空集的权值为 0。
对于所有 神奇 集合,共有多少种不同的权值出现?
输入格式
第一行包含一个整数 n(1≤n≤104),表示树 T 的顶点数量。
第二行包含 n 个整数,第 i 个数表示 ai(0≤ai≤∑i=1nai≤104)。
接下来的 n−1 行描述树的所有 n−1 条有向边。对于第 i 行,给出两个整数 Ui,Vi(1≤Ui,Vi≤n),表示存在一条从 Ui 指向 Vi 的边。
接下来一行包含一个整数 m(1≤m≤5×105),表示新增边的数量。
接下来的 m 行描述所有新增的有向边。对于第 i 行,给出两个整数 ui,vi(1≤ui,vi≤n),表示新增一条从 ui 指向 vi 的边。
输出格式
一个整数,表示上述问题的答案。
输入输出样例 #1
输入 #1
3
1 2 3
1 3
1 2
1
2 1
输出 #1
3