[ZJOI2008]瞭望塔
题号:NC20480
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

致力于建设全国示范和谐小村庄的H村村长dadzhi,决定在村中建立一个瞭望塔,以此加强村中的治安。我们将H村抽象为一维的轮廓。如下图所示我们可以用一条山的上方轮廓折线(x1, y1), (x2, y2), …. (xn, yn)来描 述H村的形状,这里x1 < x2 < … < xn
瞭望塔可以建造在[x1, xn]间的任意位置, 但必须满足从瞭望塔的顶端可以看到H村的任意位置。可见在不同的位置建造瞭望塔,所需要建造的高度是不同的。为了节省开支,dadzhi村长希望建造的塔高度尽可能小。
请你写一个程序,帮助dadzhi村长计算塔的最小高度。

输入描述:

第一行包含一个整数n,表示轮廓折线的节点数目。
接下来第一行n个整数, 为x1~ xn。
第三行n个整数,为y1 ~ yn

输出描述:

仅包含一个实数,为塔的最小高度,精确到小数点后三位。
示例1

输入

复制
6
1 2 4 5 6 7
1 2 2 4 2 1

输出

复制
1.000
示例2

输入

复制
4
10 20 49 59
0 10 10 0

输出

复制
14.500

备注:

对于60%的数据,

对于100%的数据,,输入坐标绝对值不超过106,注意考虑实数误差带来的问题。