#AT1743. E - Oversleeping

E - Oversleeping

E - 睡觉过度

分数:500 分

问题描述

一辆火车往返于 A 城和 B 城之间。 它在时间 $0$ 出发于 A 城,然后按以下方式重复:

  • 花 $X$ 秒到达 B 城;
  • 在 B 城停留 $Y$ 秒;
  • 花 $X$ 秒到达 A 城;
  • 在 A 城停留 $Y$ 秒。

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

  • 对于满足 $(2X + 2Y)n ≤ t < (2X + 2Y)n + X$ 的时间 $t$,火车正在前往 B 城;
  • 对于满足 $(2X + 2Y)n + X ≤ t < (2X + 2Y)n + X + Y$ 的时间 $t$,火车在 B 城停留;
  • 对于满足 $(2X + 2Y)n + X + Y ≤ t < (2X + 2Y)n + 2X + Y$ 的时间 $t$,火车正在前往 A 城;
  • 对于满足 $(2X + 2Y)n + 2X + Y ≤ t < (2X + 2Y)(n + 1)$ 的时间 $t$,火车在 A 城停留。

Takahashi 打算从时间 $0$ 在 A 城搭乘这趟火车并在 B 城下车。 发车后,他会按以下方式重复:

  • 睡眠 $P$ 秒;
  • 清醒 $Q$ 秒。

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

  • 对于满足 $(P + Q)n ≤ t < (P + Q)n + P$ 的时间 $t$,Takahashi 正在睡眠;
  • 对于满足 $(P + Q)n + P ≤ t < (P + Q)(n + 1)$ 的时间 $t$,Takahashi 正在清醒。

只有当火车在 B 城停留且 Takahashi 正在清醒时,他才能在 B 城下车。
确定他是否能在 B 城下车。如果能,找到最早可能的时间。
根据问题限制条件,可以证明最早的时间是一个整数。

给定 $T$ 个测试用例。解决每个测试用例。

限制

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

输入

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

TT

case1\rm case_1

case2\rm case_2

\hspace{9pt}\vdots

caseT\rm case_T

每个测试用例以以下格式给出:

``` $X$ $Y$ $P$ $Q$ ```

输出

输出 $T$ 行。
第 $i$ 行应该包含 $\rm case_i$ 的答案。
如果存在时间使得 Takahashi 能在 B 城下车,则该行应该包含最早的这个时间;否则,该行应该包含 infinity


3
5 2 7 6
1 1 3 1
999999999 1 1000000000 1
20
infinity
1000000000999999999

令 $[a, b)$ 表示区间 $a ≤ t < b$。

在第一个测试用例中,火车在时间段 $[5, 7), [19, 21), [33, 35), \dots$ 停留在 B 城,而 Takahashi 在时间段 $[7, 13), [20, 26), [33, 39), \dots$ 是清醒的,所以他最早可以在时间 $20$ 下车。