题目描述
这天,小明在修路。
他需要修理两条平行的道路 A, B,两条路上面分别有 n 个和 m 个点需要维修,它们相对于道路起点的距离分别为 a1, a2, . . . , an 和 b1, b2, b, ..., bm。如图,两条路之间的距离为 d 且它们起点 (最左端) 的连线和两条路都垂直。小明的起点为道路 A 的起点,他需要尽可能快地遍历这些需要维修的 n + m 个点,他既可以沿着道路 向右 行走,也可以在两条道路之间的空地上 随意 行走。

小明想知道遍历这些点的最短路程是多少。
输入格式
输入共三行,第一行为三个正整数 n, m, d。
第二行为 n 个由空格隔开的正整数 a1, a2, ..., an。
第三行为 m 个由空格隔开的正整数 b1, b2, ..., bm。
输出格式
一行,一个浮点数,表示答案,保留两位小数。
样例输入
2 2 2 2 1 1 2
样例输出
5.24
提示
图中红线指出了样例的最短路线,
对于 30% 的数据,保证 n + m ≤ 10;
对于 100% 的数据,保证 n, m ≤ 2000, d ≤ 4 × 106 , ai , bi ≤ 106 。
比赛公告
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!
不准作弊!!!