题目描述
精灵最近在农场上泛滥,它们经常会阻止牛们从农庄(牛棚1)走到别的牛棚(牛i的目的地是牛棚i),每一个精灵只认识牛i并 且知道牛i一般走到牛棚i的最短路经,所以它们在牛到牛棚之前的最后一条牛路上等牛i。
当然,牛不愿意遇到精灵,所以准备找一条稍微不同的路经从牛棚1走到牛棚i。所以,请你为每一头牛i找出避免精灵的最短路经的长度。
和以往一样,农场上的M(2<M<200000)条双向牛路编号为1到M并且能让所有牛到达它们的目的地,N(3≤N<100000)个牛棚,牛路i连接牛棚ai和bi(1≤aibi≤ N)并且需要时间ti(1<ti<1000)通过,没有两条牛路 连接同样的牛棚,所有牛路满足ai= bi在所有数据中,牛i使用的牛棚1到牛棚i的最短路经是唯一的。
以下是一个牛棚,牛路和时间的例子:
行程 |
最佳路径 |
最佳时间 |
最后牛路 |
p1到p2 |
1→2 |
2 |
1→2 |
p1到p3 |
1→3 |
1→3 |
p1到p4 |
1→2→4 |
5 |
2→4 |
当精灵进入农场后:
行程 |
最佳路径 |
最佳时间 |
避免 |
p1到p2 |
1→3→2 |
3 |
1→2 |
p1到p3 |
1→2→3 |
1→3 |
p1到p4 |
1→3→4 |
6 |
2→4 |
输入格式
第一行: 两个空格分开的数, N和M
第2..M+1行: 三个空格分开的数ai,bi,和ti
输出格式
第1..N−1行:
第i行包含一个数:从牛棚1到牛棚i+1并且避免从牛棚1到牛棚i+1最短路经上最后一条牛路的最少的时间.
如果这样的路经不存在,输出−1.
样例
输入样例
4 5
1 2 2
1 3 2
3 4 4
3 2 1
2 4 3
输出样例
3
3
6