atcoder#AGC022D. [AGC022D] Shopping

[AGC022D] Shopping

分数:16001600

问题描述

Yui 喜欢购物。她住在 Yamaboshi 城市,城市可以被建模为一条非常长的数轴。Yui 的家在坐标 00 处。

城市中有 NN 个购物中心,分别位于坐标 x1,x2,...,xNx_{1}, x_{2}, ..., x_{N}。此外,还有 N+2N + 2 个火车站,分别位于坐标 00LL 和每个购物中心的位置。

在时间 00 时,火车从位置 00 向正方向出发。火车以每秒 11 单位的速度行驶。在时间 LL 时,火车到达最后一个站,即坐标 LL 处的站。火车立即以相同的速度向相反方向行驶。在时间 2L2L 时,火车回到坐标 00,并立即向相反方向行驶。这个过程无限重复。

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

Yui 想要去所有 NN 个购物中心购物,顺序可以随意,并在完成购物后回到家。她在坐标 xix_{i} 的购物中心需要购物 tit_{i} 秒。她必须在开始去下一个购物中心之前完成在当前购物中心的购物。Yui 可以在到达购物中心的车站时立即开始购物,并在完成购物后立即登车。

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
  • 输入中的所有值均为整数。

输入

输入通过标准输入提供,格式如下:

NN LL

x1x_{1} x2x_{2} ...... xNx_{N}

t1t_{1} t2t_{2} ...... tNt_{N}

输出

打印完成所有 NN 个购物中心购物并回到家所需的最少时间(以秒为单位)。如果任务无法完成,输出 -1

2 10
5 8
10 4
40

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

  • 乘坐火车前往坐标 88 处的车站。她在时间 88 到达坐标 88
  • 在坐标 88 的购物中心购物。她在时间 1212 完成购物。
  • 火车在时间 1212 到达坐标 88。她登上火车,火车此时正向负方向行驶。
  • 她在时间 1515 到达坐标 55。她在时间 2525 完成购物。
  • 火车在时间 2525 到达坐标 55。她登上火车,火车此时正向正方向行驶。
  • 她在时间 3030 到达坐标 L=10L = 10。火车立即向负方向行驶。
  • 她在时间 4040 到达坐标 00,结束旅行。
2 10
5 8
10 5
60
5 100
10 19 28 47 68
200 200 200 200 200
1200
8 1000000000
2018 123456 1719128 1929183 9129198 10100101 77777777 120182018
99999999 1000000000 1000000000 11291341 1 200 1 123812831
14000000000

注意溢出问题。