问题1135--赶飞机

1135: 赶飞机

时间限制: 3 Sec  内存限制: 256 MB
提交: 7  解决: 2
[提交] [状态] [讨论版] [命题人:]

题目描述

假设在机场要乘坐的飞机快起飞了,必须立刻赶到登机口。幸运的是,从现在的位置登机口是一条直线,所以只需要一直跑就行了。不过,因为拿了很多行李,所以最多只能跑 t 秒,可以连续不停地跑 t 秒,也可以先跑一段时间再休息一会儿然后再接着跑,甚至可以一直走着一秒都不跑,但是不管怎样,跑步的总时间不能超过 t 秒。
假设现在位于数轴上 0 的位置,登机口位于 X 的位置,每秒能跑  r 个单位长度,而走路每秒只能走 s 个单位长度。机场里还有一些传送带,第 i 个传送带以固定的每秒 w个单位运行着,当站到上面时速度会加上wi(即如果是走路,则速度变为s+wi,如果是跑步,速度就变为r+wi)。现在的问题是: 至少需要多长时间才能到达登机口?

输入

第1行1个整数test,表示测试数据的组数。
对于每组测试数据,第1行输入5个整数 x、s、r、t 和 n 。x、s、r、t 的意义见问题描述,n 表示机场里一共有多少个传送带。
以下 n 行,每行3个整数,Bi、Ei、和Wi,分别表示每个传送带的起始位置、结束位置和运行速度。保证任何两个传送带都没有重叠部分。

输出

对于每组数据,输出一行“Case #x:y”。其中, x是测试数据的编号,y是你到达登机口的最少时间,精确到小数点后9位,字符串严格匹配。

样例输入 Copy

3
10 1 4 1 2
4 6 1
6 9 2
12 1 2 4 1
6 12 1
20 1 3 20 5
0 4 5
4 8 4
8 12 3
12 16 2
16 20 1

样例输出 Copy

Case #1: 4.000000000
Case #2: 5.500000000
Case #3: 3.538095238

提示

【数据规模】
对于100%的数据满足:1≤test≤4,1≤s<r≤100,1≤Wi≤100,0≤Bi≤Ei≤x,Ei≤Bi+1,1≤t≤1061≤x≤1061≤n≤1000。

来源/分类