#P12859. [NERC 2020 Online] Jumping Cat

[NERC 2020 Online] Jumping Cat

Description

城市天际线由 nn 个整数 d1,d2,,dnd_1, d_2, \ldots, d_n0<d1<d2<<dn0 < d_1 < d_2 < \ldots < d_n)和 nn 个整数 h1,h2,,hnh_1, h_2, \ldots, h_n 定义。

天际线表面由 nn 条水平线段组成,第 ii 条线段连接点 (di1,hi)(d_{i-1}, h_i)(di,hi)(d_i, h_i)(其中 d0=0d_0 = 0)。每条线段代表一栋建筑的屋顶。

一只猫(体积极小可视为质点)需要从天际线最左端点 (0,h1)(0, h_1) 移动到最右端点 (dn,hn)(d_n, h_n)。为此,猫会执行一系列移动操作,每次操作有两种类型:

  1. 行走:从点 (x1,y1)(x_1, y_1) 移动到点 (x2,y2)(x_2, y_2)。两点必须位于同一条表面线段上,即存在 ii 使得 y1=y2=hiy_1 = y_2 = h_idi1x1,x2did_{i-1} \le x_1, x_2 \le d_i。行走轨迹为直线段。
  2. 跳跃:从点 (x1,y1)(x_1, y_1) 移动到点 (x2,y2)(x_2, y_2)。两点必须位于不同表面线段上,且需满足:
    • 两点间距离不超过 LL
    • 连接两点的直线段不与任何建筑相交,即不存在线段上的点 (x,y)(x, y) 和整数 ii 使得 di1<x<did_{i-1} < x < d_iy<hiy < h_i

猫的轨迹长度为所有移动操作的长度之和。求从 (0,h1)(0, h_1)(dn,hn)(d_n, h_n) 的最短轨迹长度,若无法到达则输出 1-1

Input Format

第一行包含两个整数 nnLL1n501 \le n \le 501L1001 \le L \le 100)。
第二行包含 nn 个整数 d1,d2,,dnd_1, d_2, \ldots, d_n0<d1<d2<<dn10000 < d_1 < d_2 < \ldots < d_n \le 1000)。
第三行包含 nn 个整数 h1,h2,,hnh_1, h_2, \ldots, h_n1hi1001 \le h_i \le 100hihi+1h_i \ne h_{i+1})。

Output Format

输出一个浮点数表示最短轨迹长度,若不可达则输出 1-1。答案的绝对或相对误差不超过 10910^{-9} 即视为正确。

6 5
3 9 11 12 16 18
5 1 6 2 5 7
25.83095189484530047
6 4
3 9 11 12 16 18
5 1 6 2 5 7
-1

Hint

第一组样例的图示如下:

翻译由 DeepSeek V3 完成