atcoder#ABC270F. [ABC270F] Transportation

[ABC270F] Transportation

配点 : 500500

問題文

AtCoder 国には NN 個の島があり、 最初、どの島にも空港・港はなく、どの島の間にも道路はありません。 王である高橋君はこれらの島の間に交通手段を用意することにしました。 具体的には、高橋君は次の操作のうち 11 つを選んで行うことを好きなだけ繰り返す事ができます。

  • 1iN1\leq i\leq N をみたす ii を選び、コスト XiX_i を払って、島 ii に空港を建設する。
  • 1iN1\leq i\leq N をみたす ii を選び、コスト YiY_i を払って、島 ii に港を建設する。
  • 1iM1\leq i\leq M をみたす ii を選び、コスト ZiZ_i を払って、島 AiA_i と島 BiB_i の間を双方向に結ぶ道路を建設する。

高橋君の目標は、任意の相異なる 22 つの島 UU, VV について、 島 UU からはじめて次の行動のうち 11 つを選んで行うことを好きなだけ繰り返す事で、 島 VV に到達することができるようにする事です。

  • S,TS,T の両方に空港がある時、島 SS から島 TT まで移動する。
  • S,TS,T の両方に港がある時、島 SS から島 TT まで移動する。
  • S,TS,T を結ぶ道路が存在する時、島 SS から島 TT まで移動する。

高橋君が目標を達成するのに必要な最小コストを求めてください。

制約

  • 2N2×1052 \leq N \leq 2\times 10^5
  • 1M2×1051 \leq M \leq 2\times 10^5
  • 1Xi1091\leq X_i\leq 10^9
  • 1Yi1091\leq Y_i\leq 10^9
  • $1\leq A_i
  • 1Zi1091\leq Z_i\leq 10^9
  • iji\neq j ならば (Ai,Bi)(Aj,Bj)(A_i,B_i)\neq (A_j,B_j)
  • 入力は全て整数

入力

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

NN MM

X1X_1 X2X_2 \ldots XNX_N

Y1Y_1 Y2Y_2 \ldots YNY_N

A1A_1 B1B_1 Z1Z_1

A2A_2 B2B_2 Z2Z_2

\vdots

AMA_M BMB_M ZMZ_M

出力

高橋君が目標を達成するのに必要な最小コストを出力せよ。

4 2
1 20 4 7
20 2 20 3
1 3 5
1 4 6
16

高橋君は次のように交通手段を建設します。

  • コスト X1=1X_1=1 を払って、島 11 に空港を建設する。
  • コスト X3=4X_3=4 を払って、島 33 に空港を建設する。
  • コスト Y2=2Y_2=2 を払って、島 22 に港を建設する。
  • コスト Y4=3Y_4=3 を払って、島 44 に港を建設する。
  • コスト Z2=6Z_2=6 を払って、島 11 と島 44 の間を結ぶ道路を建設する。

このとき、目標は達成されており、かかったコストは 1616 となります。 コスト 1515 以下で目標を達成する方法はないため、1616 を出力します。

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

空港・港・道路のうち、一度も建設されないものがあっても構いません。

7 8
35 29 36 88 58 15 25
99 7 49 61 67 4 57
2 3 3
2 5 36
2 6 89
1 6 24
5 7 55
1 3 71
3 4 94
5 6 21
160