AT_gigacode_2019_e.車の乗り継ぎ
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Giga 大道是一条从西向东笔直延伸的道路,总长 L 米。
E869120 君初始站在 Giga 大道的西端,驾驶一辆可以以每分钟 VS 米的速度行驶,且剩余行驶里程为 DS 米的汽车。
除此之外,这条道路上还有 N 辆车。第 i 辆车位于距离西端 Xi 米处,可以以每分钟 Vi 米的速度行驶,并且剩余行驶里程为 Di 米。
你想要驾驶车辆自西向东行驶,终点是 Giga 大道的东端。
在途中,你可以在车辆停下的地方选择其他车进行换乘,假设换乘时间不计。
那么,E869120 君是否能够到达 Giga 大道的东端?如果不能,请输出 impossible;如果能够,请输出到达东端所需的最短时间(以分钟为单位)。
输出格式
无法到达 Giga 大道的东端时,请输出 impossible。
能够到达时,请输出所需的最短时间(以分钟为单位)。输出可以包含任意小数位,但答案与正确结果的绝对误差或相对误差必须不超过 10−5,才能被视为正确。
输入输出样例
输入#1
3 10 1 5 3 5 8 6 10 5 7 2 7
输出#1
4.000000000000000000000
输入#2
3 10 1 5 3 5 8 6 1 5 7 2 7
输出#2
4.400000000000000355271
输入#3
2 10 1 4 3 1 2 6 1 10
输出#3
impossible
输入#4
0 1 99991 1
输出#4
0.000010000900081007291
输入#5
1 100 5 60 50 7 90
输出#5
17.142857142857142349612
输入#6
4 1000 37 426 725 16 612 237 19 458 516 13 509 408 17 400
输出#6
46.861585850556437549130
说明/提示
约束条件
- 0≤N≤2019
- 1≤L≤40075017
- 1≤X1,X2,…,XN≤L−1
- X1,X2,…,XN 互不相同
- 1≤VS,V1,V2,…,VN≤100000
- 1≤DS,D1,D2,…,DN≤L
子任务
问题分为多个子任务,只有在代码通过该子任务的所有测试用例时才能视为完成该子任务。程序得分为完成的子任务分数之和。
- (9 分) N=0
- (6 分) N=0 或 N=1
- (22 分) N≤10
- (30 分) VS=1 且对于所有的 i,Vi=1
- (33 分) 无额外约束
子任务 4 的提示
该子任务实质是判定问题,因为所有车辆的速度均为每分钟 1 米,所以如果能够到达东端,最短时间必然是 L 分钟。思考这个提示有助于解决子任务 4。
示例解释
-
通过以下行驶策略,你可以在 4 分钟内到达东端,这是最快的途径:
- 先使用初始车辆行驶到 3 米处,用时 3/1=3 分钟;
- 接着换乘第一个车行驶到 6 米处,需要 3/5=0.6 分钟;
- 最后换乘第二个车行驶到东端的 10 米处,还需 4/10=0.4 分钟;
- 总用时为 3+0.6+0.4=4 分钟。
-
按照以下路线,只需 4.4 分钟即可到达终点:
- 先用原车行驶到 3 米处,用 3/1=3 分钟;
- 然后直接换乘第一个车到达终点(10 米处),用 7/5=1.4 分钟;
- 总用时为 3+1.4=4.4 分钟。
-
这种情况下,无论如何都无法到达东端。并且,这个例子满足了子任务 4 的条件「VS=1,Vi=1」。
-
注意答案输出格式为
0.00001000090008,而不是1.00009e-05。此外,例 4 满足子任务 1 的条件「N=0」。 -
此例中,在 50 米处换车是最佳选择。同时满足子任务 2 的条件「N=0 或 N=1」。
-
当绝对误差或相对误差不超过 10−5 时,
46.861585或46.86159的输出皆为正确答案。
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?