双手同步
题目描述
在森林运动会上,乐柠兔正在参加一项协调能力挑战比赛——双手同步移动。
场地可以看作一张有向图,共有 个节点、 条有向边。
每条有向边 表示:乐柠兔可以在 点将手中的球沿着这条边移动到 点,所需时间为 。
现在,乐柠兔的左手拿着一颗红球,右手拿着一颗蓝球。
在每局游戏中:
- 红球初始在节点 1;
- 蓝球初始在节点 (其中 );
- 乐柠兔每次只能移动一只手(即同时只能操作一个球);
- 目标是:让两颗球最终同时停在同一个节点,并使总耗时最少。
请你帮助乐柠兔计算:
对于每个蓝球初始点 (),完成这一过程的最短时间是多少。
若无法让两球相遇,则输出 -1。
输入格式
第一行包含两个整数 和 ,表示节点数与有向边数。
接下来 行,每行包含三个整数 ,表示有一条从 指向 的有向边,边长为 。
输出格式
输出一行 个整数,分别对应蓝球初始位置为 的最小完成时间。
若无法使两球在同一节点相遇,输出 -1。
样例输入
5 7
1 2 2
2 4 1
4 1 4
2 5 3
5 4 1
5 2 4
2 1 1
样例输出
1 -1 3 4
样例解释
- 当蓝球在 2 号点 时,可以:
- 红球从 1 号经过 ,耗时 2;
- 蓝球从 2 号经过 ,耗时 1;
- 同步最小时间为 1。
- 当蓝球在 3 号点 时,图上无法让两球到达同一点,输出
-1。 - 当蓝球在 4 号点 时,最短总时间为 3。
- 当蓝球在 5 号点 时,最短总时间为 4。
京公网安备11010802045784号