#P13035. 造桥与砍树

造桥与砍树

Background

农夫的好帮手——乔治,他喜欢在游戏里造桥和砍树。

乔治在玩一款休闲模拟类游戏。他在游戏中出生的地区是一片群岛,具体的来说,一共有 nn 座岛屿,而乔治一开始生活在 11 号岛屿。岛屿和岛屿之间互不连通。

游戏中,第 ii 座岛屿有 tit_i 根树,乔治伐一根树就可以获得一根圆木。由于游戏的刷新机制,所有的岛屿每天早上都会恢复原状。也就是说,第 ii 座岛屿的树数量都会被设置为 tit_i 根。

乔治每天可以修建一座桥,以将任意两个岛屿连接起来。岛屿之间修桥必须至少有一个是他当前可以到达的。他希望能尽快将所有岛屿连通。显然,这需要 n1n - 1 天。造桥本身不需要消耗圆木,乔治有其他材料可用,可是他有一个爱好,是砍树。当地连接岛屿 uuvv 的桥时,他一定会在造桥的当天把岛 uuvv 上的树全都砍掉,共获得 tu+tvt_u + t_v 根圆木。(当然,这天过后岛上的树又会恢复)

游戏里有一个合成公式,每使用 kk 根圆木,就可以合成一根硬木,这个合成操作每天可以做任意多次。合成的硬木可以在每天晚上卖给市场获得收益,但是剩余的圆木每天都会被系统清空。乔治不在乎自己能获得多少钱,但是患有强迫症的他很讨厌自己辛苦获得的圆木被浪费掉。

所以,现在你需要帮助他解决这个问题:请你安排好每天的造桥计划,使得第 n1n-1 天后所有岛屿可以相互到达,并且最小化这 n1n-1 天里被系统清空的圆木总数,你只需要输出这个最小总数即可。

Format

Input

本题有多组输入,第一行输入一个正整数 TT 表示输入组数。
接下来,对于每组输入:

  • 第一行,输入 22 个正整数,n(1n105)n(1 \leq n \leq 10^5)k(1k109)k(1 \leq k \leq 10^9),分别表示岛屿数量和合成一根硬木所需的圆木数量。
  • 第二行,输入 nn 个正整数,第 ii 个数为 ti(0ti109)t_i(0 \leq t_i \leq 10^9),表示每天第 ii 座岛上的树的棵数。

数据保证,输入的 nn 的总和不超过 2×1052 \times 10^5,即 n2×105\sum n \leq 2 \times 10^5

Output

输出 TT 行,每行一个整数,表示对应的答案。

Samples

2
5 3
1 2 3 4 5
8 7
3 1 4 1 5 9 2 6
1
2

Note

对于样例中的第二组数据,建桥的示意图如下图所示。
具体来说,一种可行的建桥方案为:

  • 第 1 天,连接 1 号岛屿和 5 号岛屿,获得 3+53+5 根圆木,合成 1 根硬木,剩余 1 根圆木;
  • 第 2 天,连接 1 号岛屿和 3 号岛屿,获得 3+43+4 根圆木,合成 1 根硬木,剩余 0 根圆木;
  • 第 3 天,连接 5 号岛屿和 7 号岛屿,获得 5+25+2 根圆木,合成 1 根硬木,剩余 0 根圆木;
  • 第 4 天,连接 5 号岛屿和 6 号岛屿,获得 5+95+9 根圆木,合成 2 根硬木,剩余 0 根圆木;
  • 第 5 天,连接 6 号岛屿和 8 号岛屿,获得 9+69+6 根圆木,合成 2 根硬木,剩余 1 根圆木;
  • 第 6 天,连接 8 号岛屿和 4 号岛屿,获得 6+16+1 根圆木,合成 1 根硬木,剩余 0 根圆木;
  • 第 7 天,连接 8 号岛屿和 2 号岛屿,获得 6+16+1 根圆木,合成 1 根硬木,剩余 0 根圆木。

因此一共浪费 2 根圆木,可以证明没有比这更优的方案。

数据保证,输入的 nn 的总和不超过 2×1052 \times 10^5,即 n2×105\sum n \leq 2 \times 10^5

数据序号 限制 分值
1 1n201\leq n \leq 20, 1k1091 \leq k \leq 10^9, 0ti1090 \leq t_i \leq 10^9 20
2 1n1051 \leq n \leq 10^5, 1k1091 \leq k \leq 10^9 ,ti==it_i==i
3 1n1051 \leq n \leq 10^5, 1k201 \leq k \leq 20
4 1n1051 \leq n \leq 10^5, 1k1091 \leq k \leq 10^9,0ti1090 \leq t_i \leq 10^9 40