#ABC193E. 电车与睡眠

电车与睡眠

电车与睡眠

题目描述

有往返于街 AA 和街 BB 之间的电车。 电车在时刻 00 从街 AA 出发后,反复进行以下过程:

  • XX 秒移动到街 BB
  • 在街 BB 停车 YY
  • XX 秒移动到街 AA
  • 在街 AA 停车 YY

更严格地说,这些作为半开区间处理。即,对于 n=0,1,2,n = 0, 1, 2, \dots,满足:

  • 在满足 (2X+2Y)nt<(2X+2Y)n+X(2X + 2Y)n \le t \lt (2X + 2Y)n + X 的时刻 tt,电车正在驶向街 BB
  • 在满足 (2X+2Y)n+Xt<(2X+2Y)n+X+Y(2X + 2Y)n + X \le t \lt (2X + 2Y)n + X + Y 的时刻 tt,电车正停在街 BB
  • 在满足 (2X+2Y)n+X+Yt<(2X+2Y)n+2X+Y(2X + 2Y)n + X + Y \le t \lt (2X + 2Y)n + 2X + Y 的时刻 tt,电车正在驶向街 AA
  • 在满足 (2X+2Y)n+2X+Yt<(2X+2Y)(n+1)(2X + 2Y)n + 2X + Y \le t \lt (2X + 2Y)(n + 1) 的时刻 tt,电车正停在街 AA

高桥君打算乘坐电车在时刻 00 从街 AA 出发,然后在街 BB 下车。 高桥君在时刻 00 从街 AA 出发后,反复进行以下过程:

  • 睡眠 PP
  • 清醒 QQ

这些也作为半开区间处理。即,对于 n=0,1,2,n = 0, 1, 2, \dots,满足:

  • 在满足 (P+Q)nt<(P+Q)n+P(P + Q)n \le t \lt (P + Q)n + P 的时刻 tt,高桥君在睡觉
  • 在满足 (P+Q)n+Pt<(P+Q)(n+1)(P + Q)n + P \le t \lt (P + Q)(n + 1) 的时刻 tt,高桥君是清醒的

如果电车停在街 BB 且高桥君是清醒的,高桥君就可以在街 BB 下车。

请判断高桥君能否在街 BB 下车,如果能,请求出最早的时刻。

另外,可以证明该值在本题约束下一定是整数。

给定 TT 个询问,请分别求出答案。

输入格式

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

TT
case1\rm case_1
case2\rm case_2
\hspace{9pt}\vdots
caseT\rm case_T

每个询问按以下格式给出:

XX YY PP QQ

输出格式

输出 TT 行。

ii 行中,对于 casei\rm case_i 解决本题,如果存在能在街 BB 下车的时刻,则用整数输出其中最小的时刻。 如果不存在能在街 BB 下车的时刻,则输出 infinity

样例

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

[a,b)[a, b) 表示区间 at<ba \le t \lt b

在第 11 个询问中,电车停在街 BB 的时刻是 [5,7),[19,21),[33,35),[5, 7), [19, 21), [33, 35), \dots,高桥君清醒的时刻是 [7,13),[20,26),[33,39),[7, 13), [20, 26), [33, 39), \dots,因此在时刻 2020 首次可以在街 BB 下车。

数据范围

  • 输入均为整数
  • 1T101 \le T \le 10
  • 1X1091 \le X \le 10^9
  • 1Y5001 \le Y \le 500
  • 1P1091 \le P \le 10^9
  • 1Q5001 \le Q \le 500
难度 提高
通过率
尝试 0
已通过 0
ID
2092
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签