#CF2007C. Dora 与 C++
Dora 与 C++
C. Dora 与 C++
时间限制:2 秒
内存限制:256 MB
Dora 刚刚学习了编程语言 C++!
然而,她完全误解了 C++ 的含义。她认为 C++ 是对一个包含 个元素的数组 进行两种加法操作。Dora 有两个整数 和 。在一次操作中,她可以选择以下两种操作之一:
- 选择一个下标 ,满足 ,并将 增加 。
- 选择一个下标 ,满足 ,并将 增加 。
注意, 和 是常数,它们可以相等。
定义数组 的极差为 。例如,数组 的极差为 ,数组 的极差为 ,数组 的极差为 。
在经过任意次操作(可能为 次)后,Dora 会计算新数组的极差。你需要帮助 Dora 最小化这个值,但由于 Dora 喜欢自己探索,你只需要告诉她最小化后的值。
输入格式
每个测试点包含多个测试用例。第一行包含一个整数 ()—— 测试用例的数量。
每个测试用例的第一行包含三个整数 、 和 (,)—— 数组 的长度以及常数 和 。
每个测试用例的第二行包含 个整数 ()—— 数组 的初始元素。
数据保证:所有测试用例的 之和不超过 。
输出格式
对于每个测试用例,输出一个整数 —— 经过任意次操作后能获得的最小极差。
示例
输入
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
样例解释
第一个测试用例:我们可以将 增加 。数组 变为 ,极差为 。注意,达到该答案的方式不止一种。
第二个测试用例:我们可以将 增加 ,然后将 增加 。或者,我们可以将 增加 ,将 增加 。数组 变为 ,极差为 。