一个传统的游戏是在两个选手(player)之间进行的,游戏内容是n个数(不必各不相同)。
游戏规则:第一个选手从这组数中选择一个数x1,其中x1是位于区间[a, b] (0 < a < b)的,即a <= x1 <= b。接下来第二个选手必须选择一个数y1,使得y1-x1也位于区间[a, b],(注意,这意味着,y1 > x1,因为a > 0)。然后第一个选手也必须选择一个数x2,使得x2-y1也位于区间[a, b],如此继续。如果游戏进行到该某个选手选择数了,而无法作出选择时,游戏结束了。注意,每一轮选手都不能弃权。
每个选手的得分为他所选的数的总和,即:
选手1,得分= x1 + x2 + ...
选手2,得分= y1 + y2 + ...
如果你是选手1,你能得到的最大得分差(选手1的得分-完选手2的得分)是多少?假定选手2每一步都正确地选数。
输入的第一行为一个整数t (1 <= t <= 20),代表测试例子的个数。接下来是t个测试例子,每个例子都包含2行数据,第一行包括3个整数n, a, b (2 <= n <= 10000, 0 < a < b <= 100),第二行包括n个整数,为选手可以选择的n个数,每个整数都是位于区间[-9999, 9999]的。
对每个测试例子,输出选手1能得到的最大得分差。注意,该得分可能为负数,这意味着选手1赢不了选手2。
3
6 1 2
1 3 -2 5 -3 6
2 1 2
-2 -1
2 1 2
1 0
-3
0
1
DP。注意道两个选手选出来的都是递增的。