这天,小明在修路。
他需要修理两条平行的道路 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 。