atcoder#ASAPOROC. グラフ

グラフ

配点 : 700700

問題文

高橋君は NN 頂点 MM 辺からなる連結な無向グラフを見つけました。頂点には 1,2,...,N1,2,...,N の番号がついており、辺 ii は頂点 aia_i と頂点 bib_i をつないでいます。また、辺には重さがあり、辺 ii の重さは cic_i です。

そこで、高橋君は QQ 回ゲームをし、 ii 回目のゲームで頂点 SiS_i と頂点 TiT_i を使うことにしました。ii 回目のゲームでは辺の部分集合を選び、どの頂点にも頂点 SiS_i または頂点 TiT_i から選ばれた辺のみをたどってたどり着けるようにしたいです。

各ゲームにおいて、高橋君が選ぶ辺の重みの総和として考えられる最小値を求めてください。

制約

  • 1N4,0001 \leq N \leq 4,000
  • 1M400,0001 \leq M \leq 400,000
  • 1Q100,0001 \leq Q \leq 100,000
  • 1ai,bi,Si,TiN1 \leq a_i,b_i,S_i,T_i \leq N
  • 1ci1091 \leq c_i \leq 10^{9}
  • aibia_i \neq b_i
  • SiTiS_i \neq T_i
  • 入力で与えられるグラフは連結である。

部分点

  • 200200 点分のデータセットでは、Q=1Q = 1 が成立する。
  • 別の 300300 点分のデータセットでは、Q3000Q \leq 3000 が成立する。

入力

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

NN MM

a1a_1 b1b_1 c1c_1

a2a_2 b2b_2 c2c_2

::

aMa_M bMb_M cMc_M

QQ

S1S_1 T1T_1

S2S_2 T2T_2

::

SQS_Q TQT_Q

出力

QQ 行出力し、ii 行目には ii 回目のゲームにおいて高橋君が選ぶ辺の重みの総和として考えられる最小値を出力せよ。

入力例1

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

出力例1

8
7

各ゲームについて見ると、

  • 11 回目のゲームでは辺 11 と辺 33 を選ぶことで、最小値 88 が達成されます。
  • 22 回目のゲームでは辺 11 と辺 22 を選ぶことで、最小値 77 が達成されます。

入力例2

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

出力例2

8

この入力はどちらの部分点の制約も満たします。