#CF2119A. 加法还是异或

加法还是异或

A. 加法还是异或
每个测试的时间限制:1 秒
内存限制:256 兆字节

给你两个非负整数 a,ba, b。你可以对 aa 进行任意多次操作,操作顺序任意,每次操作可以从以下两种中选择一种:

  • aa+1a \leftarrow a + 1,该操作的成本为 xx
  • aa1a \leftarrow a \oplus 1\oplus 表示按位异或),该操作的成本为 yy

现在要求你让 a=ba = b。如果可能做到,输出最小成本;否则报告不可能。

输入
每个测试点包含多个测试用例。第一行是测试用例个数 tt1t1041 \le t \le 10^4)。
接下来每个测试用例一行,包含四个整数 a,b,x,ya, b, x, y1a,b1001 \le a, b \le 1001x,y1071 \le x, y \le 10^7)—— 两个整数以及两种操作的各自成本。

输出
对于每个测试用例,输出一个整数 —— 使 a=ba = b 的最小成本,如果不可能则输出 1-1

示例
输入

7
1 4 1 2
1 5 2 1
3 2 2 1
1 3 2 1
2 1 1 2
3 1 1 2
1 100 10000000 10000000

输出

3
6
1
3
-1
-1
990000000

提示

  • 第一个测试用例:最优策略是连续三次 aa+1a \leftarrow a + 1,总成本 1+1+1=31 + 1 + 1 = 3
  • 第二个测试用例:最优策略是按顺序 aa+1a \leftarrow a + 1aa1a \leftarrow a \oplus 1aa+1a \leftarrow a + 1aa1a \leftarrow a \oplus 1,总成本 2+1+2+1=62 + 1 + 2 + 1 = 6
  • 第五个测试用例:可以证明无法使 a=ba = b