U239715 Oversleeping加强版
题目背景
Atcoder Beginner Contest 193 E
题目描述
一个人坐公交从 $A$ 站坐到 $B$ 站,公交车先用 $x$ 秒到 $B$ 站,然后在 $B$ 站停 $y$ 秒,再用 $x$ 秒到 $A$ 站,再在 $A$ 站停 $y$ 秒,如此循环往复。而这个人先睡眠 $p$ 秒,再醒来 $q$ 秒,如此循环往复。求这个人最早何时能在 $B$ 站下车,若永远不能,输出 $infinity$。
输入格式
此题有多组数据。第一行一个整数 $T$,表示 $T$ 组数据。 接下来 $T$ 行,每行依次输入 $X$,$Y$,$P$,$Q$。
输出格式
输出 $T$ 行,第 $i$ 行表示第 $i$ 组数据的结果。 如果可以,输出最小的下车时间。如果不能,输出 $infinity$。
说明/提示
输入中的所有值都是整数 \
$1 ≤$ $T$ $≤ 10$\
$1 ≤$ $X$ $≤ 10^9$ \
$1 ≤$ $Y$ $≤ 10^6$ \
$1 ≤$ $P$ $≤ 10^9$ \
$1 ≤$ $Q$ $≤ 10^6$