#P5586. 安全路经

    ID: 1691 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>USACO数据结构并查集图结构最短路2009

安全路经

题目描述

精灵最近在农场上泛滥,它们经常会阻止牛们从农庄({(}牛棚1){1)}走到别的牛棚({(}i{i}的目的地是牛棚i){i),}每一个精灵只认识牛i{i}并 且知道牛i{i}一般走到牛棚i{i}的最短路经,所以它们在牛到牛棚之前的最后一条牛路上等牛i{i}

当然,牛不愿意遇到精灵,所以准备找一条稍微不同的路经从牛棚1{1}走到牛棚i{i}。所以,请你为每一头牛i{i}找出避免精灵的最短路经的长度。

和以往一样,农场上的M(2<M<200000){M(2<M<200000)}条双向牛路编号为1{1}M{M}并且能让所有牛到达它们的目的地,N(3{N(3 ≤}N<100000){N< 100000)}个牛棚,牛路i{i}连接牛棚ai{a_i}bi{b_i}(1{(1≤}ai{a_i}bi{b_i}{≤} N){N)}并且需要时间ti{t_i}(1<ti{(1<t_i}<1000){<1000)}通过,没有两条牛路 连接同样的牛棚,所有牛路满足ai{a_i≠} bi{b_i}在所有数据中,牛i{i}使用的牛棚1{1}到牛棚i{i}的最短路经是唯一的。

以下是一个牛棚,牛路和时间的例子:

img

行程 最佳路径 最佳时间 最后牛路
p1{p_1}p2{p_2} 1{1→}2{2} 2{2} 1{1→}2{2}
p1{p_1}p3{p_3} 1{1→}3{3} 1{1→}3{3}
p1{p_1}p4{p_4} 1{1→}2{2→}4{4} 5{5} 2{2→}4{4}

当精灵进入农场后:

行程 最佳路径 最佳时间 避免
p1{p_1}p2{p_2} 1{1→}3{3→}2{2} 3{3} 1{1→}2{2}
p1{p_1}p3{p_3} 1{1→}2{2→}3{3} 1{1→}3{3}
p1{p_1}p4{p_4} 1{1→}3{3→}4{4} 6{6} 2{2→}4{4}

输入格式

第一行: 两个空格分开的数, N{N}M{M}

2..M+1{2..M+1}行: 三个空格分开的数ai,bi,{a_i, b_i,}ti{t_i}

输出格式

1..N1{1..N-1}行:

i{i}行包含一个数:从牛棚1{_1}到牛棚i+1{_i+1}并且避免从牛棚1{1}到牛棚i+1{i+1}最短路经上最后一条牛路的最少的时间.

如果这样的路经不存在,输出1.{-1.}

样例

输入样例

4 5
1 2 2
1 3 2
3 4 4
3 2 1
2 4 3

输出样例

3
3
6