见面--中级

 1 Sec 64 MB |  显示标签
2165
通过提交

题目描述

大家都知道,Silentsky住在沙河村,而lcy却住在清水河村。清水河村和沙河村虽然都是属于成都镇,但是这两个村之间却隔了重山峻岭,相距很远,更危险的是从沙河村到清水河村的山上还有猛兽“小肥猫”出没。


为了能和lcy见面,我们的勇士Silentsky丝毫不畏惧路途中所要经历的各种艰难险阻,每个周末他都会从家里出发去往清水河村。这是一条艰辛的旅程,要翻越高山,要跨过河流,而且还要对抗路途中不幸遇到的“小肥猫”。虽然有着巨大的危险,可是每每想到清水河村桥头等着自己的lcy,Silentsky顿时就会觉得力量倍增,加快了脚下的步伐。
清水河村和沙河村之间的山有大有小,要么相互交叠在一起,要么被河流隔开。为了不让心爱的lcy久等,Silentsky会选择最短的路径,这个路径就处在恰好通过沙河村和清水河村的那个竖直面上。奇妙的是,所有山和这个竖直面的切面都是个等边三角形。Silentsky只能从山的轮廓线上走过,趟过河流,而且他必须打败这条路途中遇到的所有的“小肥猫”。Silentsky走山路的速度为2 m/s,过河的速度为1 m/s。如上图所示,图中的红线就是Silentsky去见lcy所要走的路线。从图中可以发现,有的山的切面在这个竖直面上被其他山覆盖了,当然,被覆盖的部分Silentsky是不需要走的。Silentsky的战斗力并不强,所以如果遇到了比他强大的“小肥猫”,纵然自己有万分的决心也是力不从心,在这样的情况下Silentsky只好杯具的回家了— —||。
Silentsky家里养了一只鸽子。看着Silentsky对lcy的一片深情,好心的鸽子每周都会在Silentsky出发前去探路。鸽子回来后就会将路途中的情况告诉Silentsky以便他好好准备。在得到了鸽子给的路途情况之后,Silentsky想知道自己能否安全赶到清水河村和lcy见面,如果能到达,最少需要多少时间呢?聪明的你,能给出答案吗?

输入格式

输入的第一行是T(不超过100)。T表示测试部分的个数,每一部分都要求单独计算并按照要求输出结果。
每一组数据的第一行有三个整数n m A,表示路途中会遇到的山或者河流的总数是n (0 < n <= 1000),必须要打败的“小肥猫”的个数为m (0 < m <= 1000),Silentsky的战斗力为A。
接下来的n行按照和沙河村的距离远近依次介绍山和河流的情况。每一行有三个整数s x L,表示有一座山(s为0)或一条河流(s为1)的左端点和沙河村的距离为x m,这座山或这条河流的底部宽度为L m (0 < L <= 1000)。数据保证这些山和河流紧密相连(山和山之间可能重叠或包含),之间没有空隙,即将沙河到清水河整段路程完整覆盖。第n个即距离沙河村最远的是河流,而清水河村就在这条河流的右端。
之后m行给出路途中“小肥猫”的信息。每一行有三个整数x P T,表示这只“小肥猫”的位置和沙河村的水平距离为x,它的战斗力为P,Silentsky打败他所需要花费的时间是T。正如上面所说,如果P大于了Silentsky的战斗力,Silentsky只好回家了。数据保证“小肥猫”只会出现在山上。
具体情况请参考输入样例。

输出格式

对于每个测试部分,如果Silentsky遇到了比他强大的“小肥猫”只好回家的话,请输出“Oh no,this is not fair!!!”;如果他可以安全到达清水河村见到lcy,请输出所需要的时间。输出的结果为浮点数,请小数点后保留两位。
为了避免发生不必要的错误,请把结果需要的输出文字直接拷贝

样例输入 #1

2
9 4 100
0 0 10
0 7 6
0 9 15
1 24 5
0 29 24
0 32 5
0 36 8
0 50 5
1 55 3
11 20 10
20 50 30
35 30 20
42 40 25
2 1 100
0 0 2
1 1 10
1 120 100

样例输出 #1

143.00
Oh no,this is not fair!!!

来源

The 11th ZJNU Anniversary Contest
 上传者
coach
 创建时间
2014-07-17 23:50