CF1282A.Temporarily unavailable

传统题 时间 2000 ms 内存 256 MiB 4 尝试 1 已通过 1 标签

Temporarily unavailable

题目描述

Polycarp 生活在坐标轴 OxOx 上,他需要从 x=ax=a 点移动到 x=bx=b 点。他以每分钟一单位距离的速度做匀速直线运动。

在坐标轴 OxOx 上的 x=cx=c 处有一个移动运营商的基站。已知该基站的覆盖半径为 rr。因此,如果 Polycarp 距离 x=cx=c 的距离小于等于 rr,他就在网络覆盖区,否则不在。基站可以位于 Polycarp 的路径上,也可以在路径之外。

请输出 Polycarp 以匀速直线运动从 x=ax=ax=bx=b 的过程中,不在网络覆盖区的时间(以分钟为单位)。他的速度为每分钟一单位距离。

输入格式

第一行包含一个正整数 tt1t10001 \le t \le 1000),表示测试用例的数量。接下来的 tt 行,每行包含四个整数 aabbccrr108a,b,c108-10^8 \le a, b, c \le 10^80r1080 \le r \le 10^8),分别表示起点、终点、基站位置和覆盖半径。

aabbcc 中的任意两个数甚至全部都可以相等。基站可以位于 Polycarp 的路径上,也可以在路径之外。

输出格式

输出 tt 个整数,按输入顺序分别表示每个测试用例中 Polycarp 在移动过程中不在网络覆盖区的分钟数。

说明/提示

下图展示了第一个测试用例的情况。

Polycarp 从 11 走到 1010。黄色区域表示以 77 为中心、半径为 11 的基站覆盖区。绿色区域表示 Polycarp 不在覆盖区的部分路径。

由 ChatGPT 4.1 翻译

样例

9
1 10 7 1
3 3 3 0
8 2 10 4
8 2 10 100
-10 20 -17 2
-3 2 2 0
-3 1 2 0
2 3 2 3
-1 3 -2 2
7
0
4
0
30
5
4
0
3

在线编程 IDE

建议全屏模式获得最佳体验