#LQ1374. 修路

修路

问题描述

这天, 小明在修路。

他需要修理两条平行的道路 A,BA, B, 两条路上面分别有 nn 个和 mm 个点需要维修, 它们相对于道路起点的距离分别为 a1,a2,,ana_1, a_2, \ldots, a_nb1,b2,b,,bmb_1, b_2, b, \ldots, b_m 如图, 两条路之间的距离为 dd 且它们起点 (最左端) 的连线和两条路都垂直。小明的起点为道路 AA 的起点, 他需要尽可能快地逆历这些需要维修的 n+mn+m 个点, 他既可以沿着道路向右行走, 也可以在两条道路之间的空地上随意行走。

image

小明想知道遍历这些点的最短路程是多少。

输入格式

输入共三行,第一行为三个正整数 n,m,dn, m, d

第二行为 nn 个由空格隔开的正整数 a1,a2,,ana_1, a_2, \ldots, a_n

第三行为 mm 个由空格隔开的正整数 b1,b2,,bmb_1, b_2, \ldots, b_m

输出格式

一行, 一个浮点数, 表示答案, 保留两位小数。

2 2 2
2 1
1 2
5.24

样例说明

图中红线指出了样例的最短路线, 1+1+5+1=5.241+1+\sqrt{5}+1=5.24

评测用例规模与约定

対于 30% 的数据, 保证 n+m10n+m \leq 10;

对于 100% 的数据, 保证 $n, m \leq 2000,d \leq 4 \times 10^6,a_i, b_i \leq 10^6$。