问题描述
一列火车在A镇和B镇之间来回运行。它从A镇出发的时间为0,然后重复以下步骤:
- 前往B镇,需要X秒;
- 在B镇停留Y秒;
- 返回A镇,需要X秒;
- 在A镇停留Y秒。
更正式地说,这些时间间隔是半开区间的,即对于每个n=0,1,2,…:
- 在时间t满足(2X+2Y)n≤t<(2X+2Y)n+X时,火车正在前往B镇;
- 在时间t满足(2X+2Y)n+X≤t<(2X+2Y)n+X+Y时,火车在B镇停留;
- 在时间t满足(2X+2Y)n+X+Y≤t<(2X+2Y)n+2X+Y时,火车正在前往A镇;
- 在时间t满足(2X+2Y)n+2X+Y≤t<(2X+2Y)(n+1)时,火车在A镇停留。
高桥打算乘坐这列火车,在时间0从A镇出发,并在B镇下车。出发后,他将重复以下步骤:
同样,这些时间间隔也是半开区间的,即对于每个n=0,1,2,…:
- 在时间t满足(P+Q)n≤t<(P+Q)n+P时,高桥正在睡觉;
- 在时间t满足(P+Q)n+P≤t<(P+Q)(n+1)时,高桥醒着。
如果火车在B镇停靠并且高桥醒着,他就可以在B镇下车。判断他是否能在B镇下车。如果可以的话,找到最早可能的时间。根据问题的约束条件,可以证明最早时间是一个整数。
给定T个测试用例,请解决每个测试用例。
约束条件
- 输入中的所有值均为整数。
- 1≤T≤10
- 1≤X≤109
- 1≤Y≤500
- 1≤P≤109
- 1≤Q≤500
输入
输入以以下格式从标准输入中给出:
T
case1
case2
⋮
caseT
每个测试用例的格式如下:
X Y P Q
输出
输出应有T行。
第i行应包含对casei的回答。
如果存在一个时间,高桥可以在B镇下车,则该行应包含最早的时间;否则,该行应包含infinity
。
示例输入 1
3
5 2 7 6
1 1 3 1
999999999 1 1000000000 1
示例输出 1
20
infinity
1000000000999999999
用\[a,b)表示区间a≤t<b。
在第一个测试用例中,火车在时间段\[5,7),\[19,21),\[33,35),…停靠在B镇,高桥在时间段\[7,13),\[20,26),\[33,39),…醒着,因此他最早可以在时间20下车。