#B0191. 演唱会计划

演唱会计划

题目描述

nn 座城市,城市编号为 1n1 \sim n

ii 座城市会举办一场演唱会。如果一名居民选择去第 ii 座城市看演唱会,那么他需要支付门票费用 aia_i

城市之间有 mm 条双向道路。每条道路连接两座城市,单程通行费用为 ww

现在,住在第 xx 座城市的居民会选择 恰好一座 城市去看演唱会,并且看完后还要返回自己的城市。

也就是说,如果他选择去第 ii 座城市看演唱会,那么总花费为:

ai+2dist(x,i)a_i + 2 \cdot \mathrm{dist}(x,i)

其中,dist(x,i)\mathrm{dist}(x,i) 表示城市 xx 到城市 ii 的最短路长度(按单程通行费用计算)。

对于每个城市 xx,你都需要求出该城市居民的最小总花费。

输入格式

第一行两个整数 n,mn,m

接下来 mm 行,每行三个整数 u,v,wu,v,w,表示城市 uu 与城市 vv 之间有一条双向道路,单程通行费用为 ww

最后一行 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n,表示各城市演唱会的门票费用。

数据范围:

  • 1n2×1051 \le n \le 2 \times 10^5
  • 0m2×1050 \le m \le 2 \times 10^5
  • 1u,vn1 \le u,v \le n
  • uvu \ne v
  • 1w10121 \le w \le 10^{12}
  • 1ai10121 \le a_i \le 10^{12}

保证任意两座城市之间至多有一条道路,且整张图连通。

输出格式

输出一行 nn 个整数,第 ii 个整数表示第 ii 座城市居民的最小总花费。

4 4
1 2 3
2 3 2
3 4 4
1 4 10
8 1 7 20
7 1 5 13

Hint

样例解释: 我们分别考虑每座城市的居民:

  • 对于城市 11,若去城市 22 看演唱会,则总花费为

    $$a_2 + 2 \cdot \mathrm{dist}(1,2) = 1 + 2 \cdot 3 = 7$$

    这是最优方案,因此答案为 77

  • 对于城市 22,直接在本地看演唱会即可,总花费为

    a2=1a_2 = 1
  • 对于城市 33,去城市 22 看演唱会更优,总花费为

    1+22=51 + 2 \cdot 2 = 5
  • 对于城市 44,若去城市 22 看演唱会,最短路长度为

    dist(4,2)=4+2=6\mathrm{dist}(4,2) = 4 + 2 = 6

    因此总花费为

    1+26=131 + 2 \cdot 6 = 13

    比去其他城市都更优,所以答案为 1313

因此最终输出为 7 1 5 13