#abc270f. [abc270_f]Transportation

[abc270_f]Transportation

问题描述

AtCoder 共有 NN 个岛屿。最初,这些岛屿都没有机场或港口,并且它们之间没有道路相连。国王高桥将在这些岛屿之间提供某种交通方式。具体来说,他可以按任意顺序任意次数执行以下操作。

  • 选择一个整数 ii,满足 1leqileqN1\\leq i\\leq N,并支付 XiX_i 的费用,在岛屿 ii 上建造机场。
  • 选择一个整数 ii,满足 1leqileqN1\\leq i\\leq N,并支付 YiY_i 的费用,在岛屿 ii 上建造港口。
  • 选择一个整数 ii,满足 1leqileqM1\\leq i\\leq M,并支付 ZiZ_i 的费用,建造一个双向连接岛屿 AiA_i 和岛屿 BiB_i 的道路。

高桥的目标是使每对不同的岛屿 UUVV 都可以从岛屿 UU 到达岛屿 VV,可以按照以下方式任意次数地以任意顺序执行以下操作。

  • 当岛屿 SSTT 都有机场时,从岛屿 SS 前往岛屿 TT
  • 当岛屿 SSTT 都有港口时,从岛屿 SS 前往岛屿 TT
  • 当岛屿 SSTT 之间有道路时,从岛屿 SS 前往岛屿 TT

找出高桥需要支付的最小总费用,以实现他的目标。

约束条件

  • 2leqNleq2times1052 \\leq N \\leq 2\\times 10^5
  • 1leqMleq2times1051 \\leq M \\leq 2\\times 10^5
  • 1leqXileq1091\\leq X_i\\leq 10^9
  • 1leqYileq1091\\leq Y_i\\leq 10^9
  • 1leqAi<BileqN1\\leq A_i<B_i\\leq N
  • 1leqZileq1091\\leq Z_i\\leq 10^9
  • (Ai,Bi)neq(Aj,Bj)(A_i,B_i)\\neq (A_j,B_j),若 ineqji\\neq j
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入给出:

NN MM X1X_1 X2X_2 ldots\\ldots XNX_N Y1Y_1 Y2Y_2 ldots\\ldots YNY_N A1A_1 B1B_1 Z1Z_1 A2A_2 B2B_2 Z2Z_2 vdots\\vdots AMA_M BMB_M ZMZ_M

输出

输出高桥需要支付的最小总费用。


样例输入 1

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

样例输出 1

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


样例输入 2

3 1
1 1 1
10 10 10
1 2 100

样例输出 2

3

不必要每种类型的设施都至少建立一次。


样例输入 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

样例输出 3

160