#abc193e. [abc193_e]Oversleeping

[abc193_e]Oversleeping

问题描述

一列火车在A镇和B镇之间来回运行。它从A镇出发的时间为0,然后重复以下步骤:

  • 前往B镇,需要X秒;
  • 在B镇停留Y秒;
  • 返回A镇,需要X秒;
  • 在A镇停留Y秒。

更正式地说,这些时间间隔是半开区间的,即对于每个n=0,1,2,n = 0, 1, 2, \dots

  • 在时间tt满足(2X+2Y)nt<(2X+2Y)n+X(2X + 2Y)n ≤ t < (2X + 2Y)n + X时,火车正在前往B镇;
  • 在时间tt满足(2X+2Y)n+Xt<(2X+2Y)n+X+Y(2X + 2Y)n + X ≤ t < (2X + 2Y)n + X + Y时,火车在B镇停留;
  • 在时间tt满足(2X+2Y)n+X+Yt<(2X+2Y)n+2X+Y(2X + 2Y)n + X + Y ≤ t < (2X + 2Y)n + 2X + Y时,火车正在前往A镇;
  • 在时间tt满足(2X+2Y)n+2X+Yt<(2X+2Y)(n+1)(2X + 2Y)n + 2X + Y ≤ t < (2X + 2Y)(n + 1)时,火车在A镇停留。

高桥打算乘坐这列火车,在时间0从A镇出发,并在B镇下车。出发后,他将重复以下步骤:

  • 睡觉P秒;
  • 醒来Q秒。

同样,这些时间间隔也是半开区间的,即对于每个n=0,1,2,n = 0, 1, 2, \dots

  • 在时间tt满足(P+Q)nt<(P+Q)n+P(P + Q)n ≤ t < (P + Q)n + P时,高桥正在睡觉;
  • 在时间tt满足(P+Q)n+Pt<(P+Q)(n+1)(P + Q)n + P ≤ t < (P + Q)(n + 1)时,高桥醒着。

如果火车在B镇停靠并且高桥醒着,他就可以在B镇下车。判断他是否能在B镇下车。如果可以的话,找到最早可能的时间。根据问题的约束条件,可以证明最早时间是一个整数。

给定TT个测试用例,请解决每个测试用例。

约束条件

  • 输入中的所有值均为整数。
  • 1T101 ≤ T ≤ 10
  • 1X1091 ≤ X ≤ 10^9
  • 1Y5001 ≤ Y ≤ 500
  • 1P1091 ≤ P ≤ 10^9
  • 1Q5001 ≤ Q ≤ 500

输入

输入以以下格式从标准输入中给出:

TT case1case_1 case2case_2 \vdots caseTcase_T

每个测试用例的格式如下:

XX YY PP QQ

输出

输出应有TT行。
ii行应包含对caseicase_i的回答。
如果存在一个时间,高桥可以在B镇下车,则该行应包含最早的时间;否则,该行应包含infinity


示例输入 1

3
5 2 7 6
1 1 3 1
999999999 1 1000000000 1

示例输出 1

20
infinity
1000000000999999999

\[a,b)\[a, b)表示区间at<ba ≤ t < b

在第一个测试用例中,火车在时间段\[5,7),\[19,21),\[33,35),\[5, 7), \[19, 21), \[33, 35), \dots停靠在B镇,高桥在时间段\[7,13),\[20,26),\[33,39),\[7, 13), \[20, 26), \[33, 39), \dots醒着,因此他最早可以在时间20下车。