[R29C]机器人移动 - 代码源竞赛平台
时空限制
1S/512M
题目描述
在一个无限长的数轴上,一个机器人初始位于位置 0。它的目标是到达位置 X。
机器人有两种移动方式:
- 大跳跃:如果机器人当前在位置 x,它可以花费代价 A 直接跳到位置 x+D。
- 小碎步:如果机器人当前在位置 x,它可以花费代价 B 移动到 x+1 或者 x−1。

机器人可以任意次、以任意顺序组合使用这两种移动方式。
请你计算机器人从位置 0 到达位置 X 所需要的最小总代价。
格式
输入格式
本题包含多组测试数据。
第一行包含一个整数 T,表示测试数据的组数。
接下来 T 行,每行包含四个整数 X,D,A,B。具体意义见题目描述。
输出格式
对于每组测试数据,输出一行,包含一个整数,表示到达位置 X 的最小代价。
样例
样例输入 #1
2
10 3 10 2
10 3 4 2
样例输出 #1
20
14
样例解释 #1
对于第一个测试数据,机器人可以选择向右进行小碎步 10 次到达位置 10,代价为 10×2=20。
对于第二个测试数据,机器人可以选择进行大跳跃 3 次到达位置 9,再向右进行小碎步 1 次到达位置 10,代价为 3×4+1×2=14。
数据规模
对于 40% 的数据,1≤T≤10,1≤X,D≤106。
对于 100% 的数据,1≤T≤100,1≤X,D,A,B≤109。