#P1643. Roller-coaster
Roller-coaster
問題描述
一列火車從起點出發,初始高度為 ,以速度 勻速向右行駛(即每秒前進 單位水平距離)。火車的出發時間為給定的常數 (即在時間 時從起點出發)。從時間 開始就可以建造軌道。
共有 段軌道需要建造,編號 到 。每段軌道 由三個整數參數描述:
- 長度 :正整數,表示該段軌道的水平距離。
- 高度變化 :整數,表示火車行駛完該段軌道後的高度變化量。若 則為上坡(高度增加 ),若 則為下坡(高度減少 )。
- 建造時間 :正整數,表示建造該段軌道所需的時間。
你需要決定這些軌道的 行駛順序(即火車經過它們的先後次序)以及 建造順序(即建造它們的先後次序)。
約束條件
- 建造順序約束:同一時間只能建造一段軌道,且建造過程中不能中斷。對於行駛順序中的第 段軌道,它必須在火車到達該段起點之前建造完成,即其建造完成時間 火車到達該段起點的時間。
- 高度非負:火車在行駛過程中的任意時刻,高度不能低於 。
- 終點高度為零:在行駛完所有 段軌道之後,火車的高度必須恰好為 。
目標
在所有滿足上述條件的行駛順序和建造方案中,最小化火車行駛過程中的最大高度。如果不存在任何滿足條件的方案,輸出 。
輸入格式
第一行兩個整數 。
接下來 行,每行三個整數 。
輸出格式
一個整數,表示最小可能的最大高度;若無解則輸出 。
範例
範例輸入 1
2 5
2 1 3
1 -1 2
範例輸出 1
1
解釋:可在出發前完成兩段軌道的建造(建造總時間 )。行駛時先上坡後下坡,最大高度為 。
範例輸入 2
7 20
3 2 3
4 3 4
2 -1 2
3 -2 3
2 1 2
1 -2 1
2 -1 2
範例輸出 2
3
解釋:按照行駛順序 (即軌道2、軌道4、軌道1、軌道3、軌道5、軌道7、軌道6)行駛,整個過程高度不超過 ,且該值是最優的。
範例輸入 3
7 20
3 2 3
4 3 4
2 -1 2
3 -2 3
2 1 2
1 2 1
2 -1 2
範例輸出 3
-1
解釋:無法使終點高度為零,因此無解。
數據範圍
Related
In following contests: