#XMOJ10974. 巧克力和水

巧克力和水

说明

时间限制:1 Sec 内存限制:256 MB 输入文件water.in 输出文件water.out

小明特别喜欢吃巧克力,今天他到了附近新开的巧克力体验店,来品尝特色巧克力。由于他非常期待,所以早早来到了店里,此时店里没有其他客人。这家巧克力店有一个圆形柜台,周长为 $ L $ 米。

小明进店后被引导至座位就座。柜台周围摆放着 $ N $ 块和 $ N $ 杯茶水。从小明的视角来看,巧克力 $ i $ 位于顺时针方向 $ x_i $ 米处,茶水 $ j $ 位于顺时针方向 $ y_j $ 米处。不存在两个及以上巧克力或茶水位于同一位置的情况。

当小明准备好以后,他所坐的座位会沿着柜台顺时针方向以每秒 $1$ 米的速度移动。当座位移动到巧克力所在位置时,小明可以拿起巧克力食用(也可以选择不拿)。由于他耐甜程度不高,每吃完 $1$ 块巧克力后,必须先喝 $1$ 杯茶水才能吃下一块巧克力。茶水与巧克力同理,只有当座位移动到茶水所在位置时才能饮用(也可以选择不喝)。

巧克力和茶水一旦被消费,就不会再补充。由于柜台是圆形的,座位会一直沿着柜台旋转,直到小明满意为止。

小明的目标是消费完所有$ N $ 块巧克力和 $ N $ 杯茶水,并且在喝完第 $ N $ 杯茶水后,立即结账离店。请计算小明通过合理选择消费巧克力和茶水的时机,从移动开始到离店为止的最短时间。结账所需时间可忽略不计。

输入格式

输入包含三行:

第一行:两个整数 $ N $ 和 $ L $;

第二行:$ N $ 个严格递增的整数 $ x_1 \sim x_N $,表示巧克力的位置(单位:米);

第三行:$ N $ 个严格递增的整数 $ y_1 \sim y_N $,表示茶水的位置(单位:米)。

输出格式

输出一行一个整数,表示从移动开始到离店的最短时间。

样例

样例 1

3 7
1 2 4
3 5 6
12

样例说明:

最优路线:

1. 食用位置 11 的巧克力;

2. 饮用位置 33 的茶水;

3. 食用位置 44 的巧克力;

4. 饮用位置 66 的茶水;

5. 食用位置 22 的巧克力(座位旋转一圈后到达,距离为 ( 7 - 6 + 2 = 3 ) 米);

6. 饮用位置 55 的茶水(距离为 ( 5 - 2 = 3 ) 米);

总时间:( 1 + (3-1) + (4-3) + (6-4) + 3 + (5-2) = 12 ) 秒。

样例 2

2 5
1 3
2 4
4

样例说明:

最优路线:按顺序依次食用巧克力 11 → 饮用茶水 22 → 食用巧克力 33 → 饮用茶水 44,总距离为 44 米,对应时间 44 秒。

样例 3

10 827
47 129 132 290 308 309 540 544 656 818
119 241 332 340 376 498 575 632 699 737
3640

数据范围

对于 8% 的数据,N20N \le 20M5000M \le 5000

对于 40% 的数据,N5000N \le 5000

对于 100% 的数据,1N105 1 \le N \le 10^5 2N<L109 2N < L \le 10^9 0<x1<x2<<xN<L 0 < x_1 < x_2 < \dots < x_N < L 0<y1<y2<<yN<L 0 < y_1 < y_2 < \dots < y_N < L ,所有 xi x_i yj y_j 互不相同。