• 1433 迪克斯特拉过河

    Special Judge

    Time Limit : 2000/1000 MS(Java/Others) | Memory Limit : 65536/32768 KB(Java/Others)

    Submits : 54 | Solved : 6

    Description

    迪克斯特拉有一天去看望他的老朋友佛洛依德。走到半路发现面前拦着个奇怪的矩形湖泊,湖泊的两边都是大山。要想绕过去就太耽误时间了,何况迪克斯特拉向来爱走最短路,于是他停下脚步想起了办法。通过观察他发现这湖泊长L宽W(纵向为长,横向为宽),而每一个单位长度的湖面上竟然都漂有一块石头(也就是说共有L块石头),每块石头都是朝左或右以Vi的速率匀速移动,撞到山后便沿反方向继续漂。
    迪克斯特拉找完规律后便决定从石头上走过去,但由于他年纪大了腿脚不大好,因此只有当石头移到面前时他才会走到那块石头上(当然,如果对岸就在面前,他随时可以走上去),你能算出他最少要花多少时间才能通过湖泊吗?

    Input

    第一行一个整数T(T<100),表示有几组数据。
    每组数据的第一行包含2个整数L ( 0 < L < = 100 )、W ( 0 < W < = 10000 ):分别表示湖泊的长度和宽度。
    接下来有L行,第i行描述从迪克斯特拉的面前开始第i条湖面上的石头的情况(1 < = i < = L )。
    每行包含3个整数si(0 < = si < = L )、vi ( 0 < vi < = 100)和di:分别表示石头的起始位置距左边端点的距离、移动速度以及初始移动方向(di=1表示右移,-1表示左移)。
    
    初始的时候,迪克斯特拉站在湖泊这一边的正中间。
    由于湖泊很大,石头的大小可以忽略不计。
    由于石头并不是移得很快,迪克斯特拉在岸与石头之间、石头与石头之间的移动时间可以忽略不计。

    Output

    对应每组数据输出例子序号以及结果,具体格式见Sample Output。
    任何与标准答案绝对误差不超过1e-6的答案都视为正确。

    Sample Input

    6
    1 100
    40 1 1
    
    1 100
    40 1 -1
    
    1 100
    50 1 1
    
    2 100
    50 1 1
    60 1 -1
    
    2 100
    40 1 1
    60 1 -1
    
    1 3
    3 1 1
    

    Sample Output

    Case 1: 10.0
    Case 2: 90
    Case 3: 0
    Case 4: 5.000
    Case 5: 10
    Case 6: 1.500000000
    

    HINT


    Source

    The 9th NBU Programming Contest

    [ Top ] | [ Submit ] | [ Statistics ] | [ Standing ]