#839. 是兄弟就来攻沙

是兄弟就来攻沙

题目描述

​ 刘桑是个富翁,富翁喜欢玩什么游戏?当然是《热血传奇》辣!《热血传奇》有个终极玩法叫做“攻沙“。

​ 攻沙就是按顺序逐个击败你面对的敌对公会,攻击方有两种操作:

  • 花费 a×c1c2a×|c_1 - c_2| 数量的金币将你的攻城炮从当前位置 (c1c_1) 移动到任何已经被击破的敌对公会位置 (c2c_2)。
  • 花费 b×c1c2b×|c_1 - c_2| 数量的金币去攻击 c2c_2 位置的敌对公会,此时你的攻城炮在 c1c_1 位置。

​ 注意:你的攻城炮只能通过操作 11 来移动,并且只能移动到已经被攻破的位置,每个敌对公会只需一次操作 22 就可彻底攻破。你的攻城炮不能跨越式地攻击,也就是说 cic_i 位置的敌对公会未被击破前你不能攻击 ci+1c_{i+1} 位置的敌对公会。

​ 刘桑是一个强大公会的会长,在一次”攻沙“中,刘桑聘请你作为他的狗头军师,你的攻城炮初始位置在 x0=0x_0 = 0 ,请你帮助刘桑计算一下,攻破全部敌对公会所花费的最少金币是多少。

输入格式

第一行包含一个整数 tt,表示测试案例的数量。

每组测试案例的第一行有 33 个数字 n,a,bn,a,b (1n2105,1a,b1051 \le n \le 2 \cdot 10^5,1 \leq a,b \leq 10^5)。

第二行有nn个整数x1,x2,,xnx_1, x_2, \dots, x_n(1x1<x2<<xn1081 \leq x_1 < x_2 < \ldots < x_n \leq 10^8),表示每个敌对公会的位置。

保证所有测试案例中nn之和不超过21052 \cdot 10^5

输出格式

每个测试案例输出一行

攻破全部敌对公会所花费的最少金币。

样例

样例输入1

4
5 2 7
3 5 12 13 21
5 6 3
1 5 6 21 30
2 9 3
10 15
11 27182 31415
16 18 33 98 874 989 4848 20458 34365 38117 72030

样例输出1

173
171
75
3298918744

样例解释

​ 在第二个测试案例中,军师这样指挥可以让花费金币数量最少:

  • 3×103 × |1-0| 数量的金币执行操作 22 ,攻破 x1=1x_1 = 1 位置的敌对公会。
  • 6×106 × |1-0| 数量的金币执行操作 11 ,将攻城炮从 x0=0x_0 = 0 的位置移动到 x1=1x_1 = 1 的位置。
  • 3×513 × |5-1| 数量的金币执行操作 22 ,攻破 x2=5x_2 = 5 位置的敌对公会。
  • 6×516 × |5-1| 数量的金币执行操作 11 ,将攻城炮从 x1=1x_1 = 1 的位置移动到 x2=5x_2 = 5 的位置。
  • 3×653 × |6-5| 数量的金币执行操作 22 ,攻破 x3=6x_3 = 6 位置的敌对公会。
  • 3×2153 × |21-5| 数量的金币执行操作 22 ,攻破 x4=21x_4 = 21 位置的敌对公会。
  • 3×3053 × |30-5| 数量的金币执行操作 22 ,攻破 x5=30x_5 = 30 位置的敌对公会。

​ 总计花费 3+6+12+24+3+48+75=1713+6+12+24+3+48+75=171 数量的金币,你不能再找到花费金币比它更少的方案了,真是个绝顶聪明的军师呢。