atcoder#APC001D. Forest

Forest

配点 : 600600

問題文

NN 頂点 MM 辺の森が与えられます。頂点には 00 から N1N-1 の番号がついています。 辺は (xi,yi)(x_i,y_i) の形で与えられます。これは頂点 xix_iyiy_i が辺でつながっていることを意味します。

各頂点 ii には aia_i という値が定まっています。 あなたは与えられた森に辺を追加して連結にしたいです。 辺を追加するときには、まず異なる頂点二つを選択し( ii , jj とする)、 iijj の間に辺を張ります。 この時コストが ai+aja_i+a_j かかります。そしてこれ以降,頂点 iijj は永遠に選択できなくなります。

森を連結にする最小コストを求めてください。 連結にするのが不可能な場合はImpossibleと出力してください。

制約

  • 1N100,0001 \leq N \leq 100,000
  • 0MN10 \leq M \leq N-1
  • 1ai1091 \leq a_i \leq 10^9
  • 0xi,yiN10 \leq x_i,y_i \leq N-1
  • 与えられるグラフは森
  • 入力は全て整数

入力

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

NN MM

a0a_0 a1a_1 .... aN1a_{N-1}

x1x_1 y1y_1

x2x_2 y2y_2

::

xMx_M yMy_M

出力

森を連結にする最小コストを出力せよ。ただし、不可能な場合はImpossibleと出力せよ。

7 5
1 2 3 4 5 6 7
3 0
4 0
1 2
1 3
5 6
7

頂点 00, 55 をつなぐとグラフが連結になり,この時かかるコストは 1+6=71 + 6 = 7 です。

5 0
3 1 4 1 5
Impossible

どのように辺を追加してもグラフを連結にすることはできません。

1 0
5
0

最初からグラフは連結であるので,辺を追加する必要はありません。