#dwango2016finalb. [dwango2016final_b]道迷い
[dwango2016final_b]道迷い
问题文
dwango公司新建了一个办公室。今天是在那个办公室进行工作的第一天。
员工NiwanGo早上准备去办公室,但当他到达最近的地铁站时,发现了一件糟糕的事情。什么呢?他居然不知道办公室在哪里。
dwango公司的新办公室位于一条道路上,并且最近的地铁站坐标为0。这条道路上有N个交叉口,NiwanGo知道办公室可能位于这N个交叉口中的任意一个。办公室可能位于负坐标上。注意,地铁站坐标0没有交叉口。
只好这样,NiwanGo决定沿着这条道路走来寻找办公室。当他到达某个交叉口时,他才知道那里是否有办公室。
现在,NiwanGo的上司知道NiwanGo到达地铁站的时间。由于dwango公司的员工在单位时间内以单位距离的速度前进,所以假设从地铁站到办公室的距离是x,并且将NiwanGo到达地铁站的时间设为0,那么如果NiwanGo到办公室的时间晚于时间x,他就会生气。早于时间x不会有问题。
因此,NiwanGo考虑通过以恒定的速度奔跑来确保不管办公室位于哪个交叉口,地铁站和办公室之间的距离都是x,并且在时间x之前到达办公室。由于NiwanGo想要尽量慢地奔跑,所以他决定选择适当的路径并使奔跑的速度最小。
请计算NiwanGo可能的最小奔跑速度。
输入
输入数据从标准输入中提供,具有以下格式:
N x_1 . . . x_N
- 第1行包含一个整数N(1 ≤ N ≤ 1000)。
- 接下来的N行,每行给出一个整数x_i(-10^9 ≤ x_i ≤ 10^9,x_i ≠ 0),表示第i个交叉口的位置。对于任意的i(1 ≤ i ≤ N-1),满足x_i < x_{i+1}。
部分得分
本问题设有部分得分。
- 对满足N ≤ 200的数据集给出正确答案,可获得部分得分70分。
- 对所有数据集给出正确答案,可额外获得50分,总共最多可获得120分。
输出
请以一行输出NiwanGo奔跑的最小速度。输出可以包含小数点后任意位数的数字,但当与真值的绝对误差或相对误差不超过时,将视为正确答案。
注意最后要有换行符。
输入示例1
4
-3
-1
1
2
输出示例1
3.00000000000000
以下是NiwanGo的移动示例:
- 以速度3移动到第2个交叉口,并判断是否为办公室。
- 如果不是办公室,则以速度3移动到第3个交叉口,并判断是否为办公室。
- 如果不是办公室,则以速度3移动到第4个交叉口,并判断是否为办公室。
- 如果不是办公室,则以速度3移动到第1个交叉口,并判断是否为办公室。
通过这种行为方式,NiwanGo可以在连续的交叉口1、2、3、4分别用3、1/3、1、4/3单位时间内移动,满足问题描述中的条件。
输入示例2
5
-5
-2
2
4
7
输出示例2
4.14285714285714
输入示例3
9
-18
-13
-11
-6
-2
1
6
16
17
输出示例3
4.37500000000000