178. 寻找平均数

内存限制:256 MB 时间限制:1.000 S

题目描述

小红拿到了一棵树。她有多次查询,每次查询一条路上所有节点的平均数是多少。你帮帮她吗?

输入

第一行输入一个正整数 n(1 <= n <= 10^5),代表树的节点数量。 

第二行输入 n 个正整数ai(1 <= ai <= 10^9),第 i 个正整数代表号节点的权值。 

接下来的 n - 1 行,每行输入两个正整数 u、v,代表节点 u 和节点 u 有一条边连接。 

接下来的一行输入一个正整数 q(1 <= q <= 10^5),代表查询次数。 

接下来的 q 行,每行输入两个正整数 x 和 y,代表一次查询,该次查询为节点 x 到节点 y 路径上所有节点的平均数。

输出

输出 q 行,每行输入一个整数,代表路径上的所有节点的平均数。该答案为一个有理数,记为 a / b,请你输出 a / b 对 10^9 + 7 取模的值。

a / b对 p 取模的意义是在 [0, p - 1] 区间找到一个 x 满足 x * b mod p = a。

样例输入 复制

3 
4 5 6
1 2
1 3
2
1 2
2 3

样例输出 复制

500000008
5