#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$
输入
输入以以下格式从标准输入中给出:
每个测试用例以以下格式给出:
``` $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$ 下车。