問題文

長さ NN の正整数列 S=(S1,S2,,SN)S=(S_1,S_2,\ldots,S_N) と、NN 頂点 MM 辺の単純連結無向グラフが与えられます。 頂点には 11 から NN までの番号が付いています。

このグラフ上で、頂点 xx から頂点 yyKK 回で移動する方法とは、長さ K+1K+1 の整数列 A=(A0,A1,,AK)A=(A_0,A_1,\ldots,A_K) が次の条件を全て満たすことを指します。


  • A0=xA_0=x
  • AK=yA_K=y
  • 0i<K0 \leq i < K を満たすすべての整数 ii について、頂点 AiA_i と頂点 Ai+1A_{i+1} は辺で結ばれている
  • 0i<K10 \leq i < K-1 を満たすすべての整数 ii について、AiAi+2A_i \neq A_{i+2}

最後の条件は、11 回前にいた頂点へ直ちに戻ることができないことを意味します。


このような列 AA 全体の集合を Ax,y,K\mathcal{A}_{x,y,K} とします。

頂点 xx から頂点 yyKK 回で移動する方法の最大スコアを、Ax,y,K\mathcal{A}_{x,y,K} を用いて、

maxAAx,y,K(i=1KSAi)\max_{A \in \mathcal{A}_{x,y,K}} \left( \sum_{i=1}^{K} S_{A_i} \right)

と定めます。ただし、Ax,y,K\mathcal{A}_{x,y,K} が空集合である場合、最大スコアは 00 とします。

各頂点 X=1,2,,NX=1,2,\ldots,N に対して、頂点 11 から頂点 XX へちょうど TT 回で移動する方法の最大スコアを PXP_X としたとき、長さ NN の整数列 P=(P1,P2,...,PN)P=(P_1,P_2,...,P_N) を出力してください。

なお、与えられるグラフには必ず 11 つ以上のサイクルが含まれることが保証されます。

制約

  • 3N5×1033 \leq N \leq 5 \times 10^3
  • NM2×104N \leq M \leq 2 \times 10^4
  • 1T1501 \leq T \leq 150
  • 109Si109-10^9 \leq S_i \leq 10^9
  • 1ui<viN1 \leq u_i < v_i \leq N
  • 与えられるグラフは単純連結無向グラフ
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

N  M  TS1  S2  ...  SNu1  v1u2  v2...uM  vMN\ \ M\ \ T\\ S_1\ \ S_2\ \ ...\ \ S_N\\ u_1\ \ v_1\\ u_2\ \ v_2\\ ...\\ u_M\ \ v_M

出力

求めた整数列 PP の各要素を、空白で区切って11行で出力してください。

P1  P2  PNP_1\ \ P_2\ \cdots \ P_N

入力例 1

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

出力例 1

6 9 9 9 0

頂点 11 から頂点 1133 回で移動する方法は 12311 \to 2 \to 3 \to 1 と、13211 \to 3 \to 2 \to 122 つであり、得られる最大スコアは 2+3+1=62+3+1=6 です。

また、頂点 11 から頂点 5533 回で移動する方法はありません。この場合、最大スコアは 00 です。

入力例2

3 3 1
-1 -10 -100
1 2
1 3
2 3

出力例2

0 -10 -100

最大スコアが負になる場合もあります。

Submit


Go (1.21)