#agc022d. [agc022_d]Shopping

[agc022_d]Shopping

问题陈述

Yui喜欢购物。她住在山星市,那里有一列火车。这个城市可以模拟成一个非常长的数轴。Yui的房子坐标是0。

城市中有N个购物中心,分别位于坐标x1x_{1}x2x_{2},...,xNx_{N}上。共有N+2个火车站,一个位于坐标0,一个位于坐标L,其他每个购物中心都有一个。

在时间0点,火车从位置0向正方向出发。火车的速度是每秒1个单位。在时间L点,火车将到达最后一个站点,也就是坐标L上的站点。然后火车立即以相同速度反向移动。在时间2L点,火车将到达坐标0上的站点,并再次立即反向移动。此过程无限循环。

当火车到达Yui所在的站点时,Yui可以立即上下车。在时间0点,Yui在坐标0的站点上。

Yui想要按照任意顺序在所有N个购物中心购物,并在完成购物后返回家。她需要在坐标xix_{i}上的购物中心购物tit_{i}秒。**她必须先在一个购物中心完成购物,然后再移动到下一个购物中心。**当她到达一个有购物中心的站点时,她可以立即开始购物,购物结束后可以立即上车。

Yui希望以最短的时间完成购物。你能帮助她确定完成购物所需的最短秒数吗?

约束条件

  • 1N3000001 \leq N \leq 300000
  • 1L1091 \leq L \leq 10^{9}
  • 0<x1<x2<...<xN<L0 < x_{1} < x_{2} < ... < x_{N} < L
  • 1ti1091 \leq t_{i} \leq 10^{9}
  • 输入中的所有值均为整数。

部分得分

  • 通过满足1N30001 \leq N \leq 3000的测试集将获得1000分。

输入

输入以以下格式从标准输入给出:

NN LL x1x_{1} x2x_{2} ...... xNx_{N} t1t_{1} t2t_{2} ...... tNt_{N}

输出

打印Yui完成在所有N个购物中心购物并返回家所需的最短时间(秒)。


样例输入 1

2 10
5 8
10 4

样例输出 1

40

以下是Yui完成购物的一种可能方式:

  • 乘坐火车前往坐标8的车站。她在时间8点到达坐标8。
  • 在坐标8的购物中心购物。她在时间12点完成购物。
  • 火车在时间12点到达坐标8。她上了当前正在沿负方向移动的火车。
  • 她在时间15点到达坐标5。她在时间25点完成购物。
  • 火车在时间25点到达坐标5。她上了当前正在沿正方向移动的火车。
  • 她在时间30点到达坐标L = 10。火车立即开始向负方向移动。
  • 她在时间40点到达坐标0,结束行程。

样例输入 2

2 10
5 8
10 5

样例输出 2

60

样例输入 3

5 100
10 19 28 47 68
200 200 200 200 200

样例输出 3

1200

样例输入 4

8 1000000000
2018 123456 1719128 1929183 9129198 10100101 77777777 120182018
99999999 1000000000 1000000000 11291341 1 200 1 123812831

样例输出 4

14000000000

请注意溢出问题。