405048 - 回路烧毁

有 n 个结点,每个结点有一个费用 wi。给定 m 条有向边。 现在要选若干个结点作为 “起火点”。规则如下: 1,如果一个结点被选为起火点,那么从它出发能回到它自己的所有结点(即与它属于同一个强连通分量的结点)都会被烧毁,费用只算该起火点的费用。 2,每个结点只需要被烧一次。 3,起火点可以从任意结点开始选,各次选择互不影响。 求烧毁所有结点的最小总费用,以及费用最小时的方案数。方案数对 10^9 + 7 取模。

输入

第一行一个正整数 n(1 ≤ n ≤ 10^5)。 第二行 n 个正整数,表示每个节点的费用 wi(0 ≤ wi ≤ 10^9)。 第三行一个正整数 m(1 ≤ m ≤ 3 × 10^5)。 接下来 m 行,每行两个正整数 xi, yi,表示一条 xi → yi 的有向边。

输出

一行两个整数,分别表示最小总费用和方案数。

样例

输入

3
1 2 3
3
1 2
2 3
3 2

输出

3 1

输入

3
10 20 10
4
1 2
1 3
3 1
2 1

输出

10 2
时间限制 1 秒
内存限制 128 MB
统计
上一题 下一题