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$