#CF2007C. Dora 与 C++

Dora 与 C++

C. Dora 与 C++

时间限制:2 秒
内存限制:256 MB

Dora 刚刚学习了编程语言 C++!

然而,她完全误解了 C++ 的含义。她认为 C++ 是对一个包含 nn 个元素的数组 cc 进行两种加法操作。Dora 有两个整数 aabb。在一次操作中,她可以选择以下两种操作之一:

  • 选择一个下标 ii,满足 1in1 \le i \le n,并将 cic_i 增加 aa
  • 选择一个下标 ii,满足 1in1 \le i \le n,并将 cic_i 增加 bb

注意,aabb 是常数,它们可以相等。

定义数组 dd极差max(di)min(di)\max(d_i) - \min(d_i)。例如,数组 [1,2,3,4][1,2,3,4] 的极差为 41=34-1=3,数组 [5,2,8,2,2,1][5,2,8,2,2,1] 的极差为 81=78-1=7,数组 [3,3,3][3,3,3] 的极差为 33=03-3=0

在经过任意次操作(可能为 00 次)后,Dora 会计算新数组的极差。你需要帮助 Dora 最小化这个值,但由于 Dora 喜欢自己探索,你只需要告诉她最小化后的值。


输入格式

每个测试点包含多个测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4)—— 测试用例的数量。

每个测试用例的第一行包含三个整数 nnaabb1n1051 \le n \le 10^51a,b1091 \le a, b \le 10^9)—— 数组 cc 的长度以及常数 aabb

每个测试用例的第二行包含 nn 个整数 c1,c2,,cnc_1, c_2, \dots, c_n1ci1091 \le c_i \le 10^9)—— 数组 cc 的初始元素。

数据保证:所有测试用例的 nn 之和不超过 10510^5


输出格式

对于每个测试用例,输出一个整数 —— 经过任意次操作后能获得的最小极差。


示例

输入

10
4 5 5
1 3 4 4
4 2 3
1 3 4 6
4 7 7
1 1 2 6
3 15 9
1 9 5
3 18 12
1 4 5
7 27 36
33 13 23 12 35 24 41
10 6 9
15 5 6 9 8 2 12 15 3 8
2 1 1000000000
1 1000000000
6 336718728 709848696
552806726 474775724 15129785 371139304 178408298 13106071
6 335734893 671469786
138885253 70095920 456876775 9345665 214704906 375508929

输出

3
0
3
2
3
5
1
0
17
205359241

样例解释

第一个测试用例:我们可以将 c1=1c_1 = 1 增加 a=5a = 5。数组 cc 变为 [6,3,4,4][6,3,4,4],极差为 33。注意,达到该答案的方式不止一种。

第二个测试用例:我们可以将 c1=1c_1 = 1 增加 a=2a = 2,然后将 c1=3c_1 = 3 增加 b=3b = 3。或者,我们可以将 c2=3c_2 = 3 增加 b=3b = 3,将 c3=4c_3 = 4 增加 a=2a = 2。数组 cc 变为 [6,6,6,6][6,6,6,6],极差为 00