配点 : 500 点
問題文
街 A と街 B の間を往復する電車があります。
電車は時刻 0 に街 A を出発した後、
- X 秒かけて街 B に移動
- 街 B で Y 秒停車
- X 秒かけて街 A に移動
- 街 A で Y 秒停車
を繰り返します。
より厳密には、これらは半開区間として扱います。すなわち、n=0,1,2,… について、
- (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 で停車している
が満たされます。
高橋くんは電車に乗って時刻 0 に街 A を出発し、街 B で電車を降りようと思っています。
高橋くんは時刻 0 に街 A を出発した後、
を繰り返します。
これらも半開区間として扱います。すなわち、n=0,1,2,… について、
- (P+Q)n≤t<(P+Q)n+P を満たす時刻 t には高橋くんは眠っている
- (P+Q)n+P≤t<(P+Q)(n+1) を満たす時刻 t には高橋くんは起きている
が満たされます。
街 B に電車が停車しており、かつ、高橋くんが起きていれば高橋くんは街 B で電車を降りることができます。
高橋くんが街 B で電車を降りることができるか判定し、できる場合は、最短でいつになるか求めてください。
なお、この値はこの問題の制約下で整数になることが証明できます。
T 個のケースが与えられるので、それぞれについて答えを求めてください。
制約
- 入力は全て整数
- 1≤T≤10
- 1≤X≤109
- 1≤Y≤500
- 1≤P≤109
- 1≤Q≤500
入力
入力は以下の形式で標準入力から与えられる。
T
case1
case2
⋮
caseT
各ケースは以下の形式で与えられる。
X Y P Q
出力
T 行出力せよ。
i 行目には、casei についてこの問題を解き、街 B で電車を降りられる時刻が存在する場合、そのような時刻のうち最小のものを整数で出力せよ。
街 B で電車を降りられる時刻が存在しない場合、infinity
と出力せよ。
3
5 2 7 6
1 1 3 1
999999999 1 1000000000 1
20
infinity
1000000000999999999
[a,b) で区間 a≤t<b を表すことにします。
1 個目のケースでは、電車が街 B で停車している時刻は [5,7),[19,21),[33,35),… 、
高橋くんが起きている時刻は [7,13),[20,26),[33,39),… なので、時刻 20 に初めて街 B で電車を降りることが出来ます。