#732. 爬山
爬山
题目描述
小 喜欢爬山,但体能有限,不能连续爬升太高。比特峰共有 个景点,第 个景点海拔为 米。景点之间共有 条双向线路,第 条线路连通景点 与 ,走这条线路无论方向耗时均为 分钟。
小 在爬山过程中会累积“疲劳值”,初始为 ,最大能忍受的疲劳值为 。假设当前小 在景点 ,存在一条线路通向景点 :
- 若 (下坡),走这条线路会让疲劳值被 清空(变为 )。
- 否则(上坡或持平),走这条线路会使疲劳值增加 。小 只能在保证疲劳值不超过 的前提下走这条线路。
小 从 号景点出发,仅能沿给定线路移动。对于每个景点,求从景点 出发到达该景点所需的最短时间(分钟),或若不可达则输出 。
输入格式
输入共 行:
- 第一行包含三个整数:,分别表示景点数、线路数和最大疲劳值。
- 第二行包含 个整数:,第 个为第 个景点的海拔。
- 接下来的 行,每行包含三个整数:,表示一条无向边连接景点 与 ,走这条边耗时 分钟。
输出格式
输出一行,共 个整数。第 个整数表示从景点 到达景点 的最短时间(分钟);若不可达则输出 。整数之间以空格分隔。
样例输入 1
6 7 3
1 2 3 4 5 6
1 2 1
2 4 10
1 3 8
2 3 2
3 5 9
4 3 100
2 6 2
样例输出 1
1 3 11 16 -1
说明
数据范围
- ,,;
- ;
- ,;
- 。