SP695 UFAST - Unite Fast

题目描述

特工们需要团结起来。他们在路上,每个人都有一个特殊的设备,可以在两个方向上发送和接收信号,最大距离为D个单位。除了这个小的限制之外,这些设备的工作效率非常高,因此设备间通信所花费的时间实际上为零。既然代理位于道路上的不同点,为了使它们能够随意相互通信,每个代理都应该通过一个或多个中间设备连接到其他代理。例如:当A和C距离不够近时,代理A可以通过代理B的设备与代理C通信。当 $dist(A,C) > D$, 但 $dist(A,B) \le D$ 且 $dist(B,C) \le D$. 准备好线路是指代理从当前位置移动以使网络完全连接的过程。也就是说,从每一个代理到每一个其他代理,都有一条通信路径。 代理人的最终位置(在接下来的两种情况下)由程序员决定,程序员从上方观看场景,并指示每个代理人移动的时间和移动到的最终位置。每个代理人在单位时间内移动单位距离。 如果程序员移动代理,我们需要找到“准备好线路”所需的最短时间: 1. 独立:换句话说,每个代理人都会在不等待任何其他代理人的情况下到达他们的最终位置;所有特工都在零点被告知他们的最终位置。 2. 顺序地:在这个过程中,代理人形成了一个明确的运动序列。没有两个特工同时行动。

输入格式

$T$ 是测试用例的数量。对于每个测试用例: $N,D$ 其中 $N$ 是代理数量,$D$ 是最大通信距离 后面 $N$ 条线中的第 $i$ 条线给出了当前道路上第 $i$ 个代理的位置。

输出格式

对于每个测试用例,输出两个整数; 第一,如果他们独立行动,团结起来所需的最短时间 第二,如果它们按顺序移动,则联合所需的最短时间 **限制:** $T \le 20$ $1 \le N,D \le 100$; 每个代理的初始位置在 $0$ 到 $1000$ 之间。 ## 样例 #1 ### 样例输入 #1 ``` 2 4 3 10 20 30 35 5 3 1 2 3 4 30 ``` ### 样例输出 #1 ``` 8 23 12 23 ```