免费航班

Grade 0 Open Time Thursday, 21 February 2013, 11:02 pm
Discount 0.8 Time Discount Thursday, 28 February 2013, 11:02 pm
Allow late Yes Close Time Thursday, 28 February 2013, 11:02 pm
Input file freeline.in Output file freeline.out

问题描述

小Z在MOI比赛中获得了大奖,奖品是一张特殊的机票。使用这张机票,可以在任意一个国家内的任意城市之间的免费飞行,只有跨国飞行时才会有额外的费用。小Z获得了一张地图,地图上有城市之间的飞机航班和费用。已知从每个城市出发能到达所有城市,两个城市之间可能有不止一个航班。一个国家内的每两个城市之间一定有不止一条飞行路线,而两个国家的城市之间只有一条飞行路线。小Z想知道,从每个城市出发到额外费用最大的城市,以便估算出出行的费用,请你帮助他。当然,你不能通过乘坐多次一个航班增加额外费用,也就是必须沿费用最少的路线飞行。

输入格式

第一行,两个整数N,M,表示地图上有N个城市,M条航线。

接下来M行,每行三个整数a,b,c,表示城市a,b之间有一条费用为c的航线。

输出格式

共N行,第i行为从城市i出发到达每个城市额外费用的最大值。

样例输入

6 6
1 4 2
1 2 6
2 5 3
2 3 7
6 3 4
3 1 8

样例输出

4
4
4
6
7
7

样例说明

有四个国家,包含的城市分别为 {1,2,3},{4},{5},{6}。从城市1出发到达城市6,乘坐(1,3)(3,6)两个航班费用最大,(1,3)在国内为免费航班,(3,6)的费用为4,所以从1出发的最大费用为4。

数据规模

  • 对于30%的数据 1<=N<=1000,1<=M<=1000
  • 对于100%的数据 1<=N<=20000,1<=M<=200000