#CF2038E. 水桶

水桶

E. 水桶
每次测试的时间限制:2 秒
每次测试的内存限制:512 兆字节

假设你有一排 nn 个水桶,编号从 11nn

所有水桶都是相同的,底面积为 11 个单位,因此桶内水的体积等于水柱的高度。初始时,第 ii 个桶内有 viv_i 个单位的水。

相邻的水桶通过管道连接。也就是说,对于每个 ii11n1n-1,桶 ii 和桶 i+1i+1 之间有一根位于高度 hih_i 的水平管道。管道的宽度可以忽略不计。这些管道允许水在桶之间流动。

现在你想玩这些桶。你的计划是通过向桶内扔粘土来最大化第一个桶中的水的体积。

在一次操作中,你可以选择任意一个桶,并向其中扔进一个单位的粘土。一个单位的粘土体积与一个单位的水相同。粘土比水重,并且不溶于水,因此它会沉到桶底,均匀分布。

粘土具有粘性结构,因此如果粘土柱足够高,它会封闭管道。更正式地说,假设管道位于高度 hh。如果粘土柱的高度等于或低于 hh,则管道可以工作。但一旦你向桶中加入更多的粘土,管道就会瞬间封闭,阻止水在桶之间流动。

你有大量的粘土,因此可以无限次重复上述操作。然而,在每次操作之间,你必须等待水达到新的平衡。

你能收集到第一个桶中的最大水体积是多少?

假设桶足够高,水不会溢出,且管道宽度可忽略不计。


输入
第一行包含一个整数 nn2n21052 \le n \le 2 \cdot 10^5)—— 水桶的数量。

第二行包含 nn 个整数 v1,v2,,vnv_1, v_2, \dots, v_n0vi1060 \le v_i \le 10^6),其中 viv_i 是第 ii 个桶中初始的水体积。

第三行包含 n1n-1 个整数 h1,h2,,hn1h_1, h_2, \dots, h_{n-1}1hi1061 \le h_i \le 10^6),其中 hih_i 是第 ii 个桶与第 i+1i+1 个桶之间管道的高度。

输入的附加约束:给出的初始水高度处于平衡状态。


输出
打印一个数字 —— 第一个桶中水的最大体积。如果绝对误差或相对误差不超过 10610^{-6},则认为你的答案正确。

形式化地说,设你的答案为 aa,标准答案为 bb。当且仅当 abmax(1,b)106\frac{|a-b|}{\max(1,|b|)} \le 10^{-6} 时,你的答案被接受。


示例

示例 1
输入

2
1 2
2

输出

2.500000000000000

示例 2
输入

3
3 0 0
6 9

输出

3.000000000000000

示例 3
输入

5
10 0 0 0 5
11 1 2 5

输出

11.916666666666667

注释
第一个示例的最优策略如下图所示。