Description
城市天际线由 n 个整数 d1,d2,…,dn(0<d1<d2<…<dn)和 n 个整数 h1,h2,…,hn 定义。
天际线表面由 n 条水平线段组成,第 i 条线段连接点 (di−1,hi) 和 (di,hi)(其中 d0=0)。每条线段代表一栋建筑的屋顶。
一只猫(体积极小可视为质点)需要从天际线最左端点 (0,h1) 移动到最右端点 (dn,hn)。为此,猫会执行一系列移动操作,每次操作有两种类型:
- 行走:从点 (x1,y1) 移动到点 (x2,y2)。两点必须位于同一条表面线段上,即存在 i 使得 y1=y2=hi 且 di−1≤x1,x2≤di。行走轨迹为直线段。
- 跳跃:从点 (x1,y1) 移动到点 (x2,y2)。两点必须位于不同表面线段上,且需满足:
- 两点间距离不超过 L;
- 连接两点的直线段不与任何建筑相交,即不存在线段上的点 (x,y) 和整数 i 使得 di−1<x<di 且 y<hi。
猫的轨迹长度为所有移动操作的长度之和。求从 (0,h1) 到 (dn,hn) 的最短轨迹长度,若无法到达则输出 −1。
第一行包含两个整数 n 和 L(1≤n≤50;1≤L≤100)。
第二行包含 n 个整数 d1,d2,…,dn(0<d1<d2<…<dn≤1000)。
第三行包含 n 个整数 h1,h2,…,hn(1≤hi≤100;hi=hi+1)。
输出一个浮点数表示最短轨迹长度,若不可达则输出 −1。答案的绝对或相对误差不超过 10−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 完成