小球下落
這是一個基于如下圖裝置的一個游戲。
裝置包括一組水平放置的,高度不同的,長度不同的平板。地板被視為高度最低的平板。
在0時刻,從一個給定的位置,一個小球自由落下。小球以一個固定的每秒1米的速度下落。當小球到達某一平板后,它可以根據(jù)游戲者的選擇,以同樣的速度(每秒1米)滾向左端或右端。當它到達平板的邊緣時,它繼續(xù)垂直下落。小球不允許一次(在兩塊平板之間)下落超過max米。
任務
編寫一個程序找出一個小球在平板上滾動的方法,使得不中斷的盡快的到達地面。
輸入
file name: fall.in
第一行: n x y max
· 四個整型數(shù)―― 平板的數(shù)目,小球起始位置的x,y坐標,最大允許下落的距離
第2..n+1行:
· 三個整型數(shù)-第i個平板被放置在 高度,水平位于 與 (包括與 ),( < , i=1..n).
注意:
· 小球的直徑和平板的厚度忽略不計。如果小球恰好落到平板的邊緣則被認為一次下落到該平板。
· 任意兩塊平板不存在公共點
· 測試數(shù)據(jù)總存在解
· 所有給定的尺寸均為米
輸出
file name: fall.out
第一行:時間
· 一個整數(shù),小球到達地面的時間
接下來每行為:
p t d
· 三個整數(shù),表示在t時刻,小球撞及平板p,并且向方向d滾動 (0表示左,1表示右)。
· 不包含撞及地面的情況
· 必須按小球撞及平板的時間遞增順序輸出
注意
· 可能有多解,只要求出一種解。
限制
· 1 n 1000
· -xx0 , xx0 (i=1..n)
· 0 < < y xx0
example
fall.in fall.out
3 8 17 20 23
0 10 8 2 4 1
0 10 13 1 11 1
4 14 3 3 16 1
<