#gigacode2019e. [gigacode_2019_e]車の乗り継ぎ

[gigacode_2019_e]車の乗り継ぎ

问题描述

Gigastreet是一条从西向东直线行驶的道路,长度为LL米。

E869120现在位于Gigastreet的西端,乘坐一辆以VSV_S米/分钟的速度行驶的车,还剩下DSD_S米可以走。

除此之外,这条街上还有NN辆车。第ii辆车位于离西端XiX_i米的位置,以ViV_i米/分钟的速度行驶,还剩下DiD_i米可以走。

你希望从西向东驾驶车辆,到达Gigastreet的东端。

他可以在途中停下来并换乘其他车辆。换乘所花费的时间可以视为0分钟。

现在的问题是,他能否到达Gigastreet的东端?如果无法到达,请报告此情况;如果可以到达,请报告到达东端所需的最短时间(以分钟为单位)。

约束条件

  • 0N2,0190 \leq N \leq 2,019
  • 1L40,075,0171 \leq L \leq 40,075,017
  • 1X1,X2,,XNL11 \leq X_1, X_2, \dots, X_N \leq L-1
  • X1,X2,,XNX_1, X_2, \dots, X_N 是不同的数字
  • 1VS,V1,V2,,VN100,0001 \leq V_S, V_1, V_2, \dots, V_N \leq 100,000
  • 1DS,D1,D2,,DNL1 \leq D_S, D_1, D_2, \dots, D_N \leq L
  • 输入都是整数

部分得分

这个问题被分为几个子问题,只有当你对所有的子问题都给出正确答案时,才会被认为"解决了这个子问题"。

提交的源代码得分是所有子问题得分的总和。

  1. (9 分) N=0N = 0
  2. (6 分) N=0N = 0N=1N = 1
  3. (22 分) N10N \leq 10
  4. (30 分) VS=1V_S = 1,并且对于所有 iiVi=1V_i = 1
  5. (33 分) 没有额外的约束。

子问题 4 的提示

这个子问题是一个判断是否"可以到达东端"的问题。因为在所有地方以每分钟1米的速度前进,所以如果可以到达,最短时间将始终为LL分钟。尝试解决子问题 4 的人可以考虑这个提示。

输入格式

从标准输入读取输入数据。

输入具有以下格式:

NN LL
VSV_S DSD_S
X1X_1 V1V_1 D1D_1
X2X_2 V2V_2 D2D_2
: : :
XNX_N VNV_N DND_N

输出格式

如果无论怎么做都无法到达Gigastreet的东端,请输出impossible
如果可以到达,请输出到达东端所需的最短时间(以分钟为单位)。输出可以包含任意位数的小数,但在答案误差(绝对误差或相对误差)不超过10510^{-5}时才被认为是正确的。

示例 1

输入

3 10
1 5
3 5 8
6 10 5
7 2 7

输出

4.000000000000000000000

按照如下移动,在4分钟内可以到达Gigastreet的东端,并且这是最短时间:

  • 首先,乘坐初始车辆行驶到离西端3米的位置。这需要3/1=3分钟。
  • 然后,乘坐第1辆车行驶到离西端6米的位置。这需要3/5=0.6分钟。
  • 最后,乘坐第2辆车行驶到东端(离西端10米的位置)。这需要4/10=0.4分钟。
  • 总共需要3+0.6+0.4=4分钟,就可以到达东端。

示例 2

输入

3 10
1 5
3 5 8
6 1 5
7 2 7

输出

4.400000000000000355271

按照如下移动,在4.4分钟内可以到达Gigastreet的东端,并且这是最短时间:

  • 首先,乘坐初始车辆行驶到离西端3米的位置。这需要3/1=3分钟。
  • 然后,乘坐第1辆车行驶到东端(离西端10米的位置)。这需要7/5=1.4分钟。
  • 总共需要3+1.4=4.4分钟,就可以到达东端。

示例 3

输入

2 10
1 4
3 1 2
6 1 10

输出

impossible

在这种情况下,无论如何都无法到达Gigastreet的东端。
此外,示例3是子问题4“VS=1V_S = 1Vi=1V_i = 1”的约束条件。

示例 4

输入

0 1
99991 1

输出

0.000010000900081007291

请注意,答案应该使用0.00001000090008格式而不是1.00009e-05格式。
此外,示例4是子问题1“N=0N = 0”的约束条件。

示例 5

输入

1 100
5 60
50 7 90

输出

17.142857142857142349612

在这种情况下,最佳方式是在离西端50米的地方换乘。
此外,示例5是子问题2“N=0N = 0N=1N = 1”的约束条件。

示例 6

输入

4 1000
37 426
725 16 612
237 19 458
516 13 509
408 17 400

输出

46.861585850556437549130

只要绝对误