#codefestival2016qualBc. [codefestival_2016_qualB_c]Gr-idian MST

[codefestival_2016_qualB_c]Gr-idian MST

問題文

xyxy平面上の0xW,0yH0 ≦ x ≦ W, 0 ≦ y ≦ Hをみたす領域にあるx,yx,yともに整数である点すべてに、ひとつずつ家があります。

xx座標が等しくyy座標の差が11であるか、yy座標が等しくxx座標の差が11であるような22点の組のうち、両方の点に家が存在するような全てのものに対し、その22点の間には舗装されていない道路があります。

座標(i,j)(i,j)(i+1,j)(i+1,j)にある家の間の道路を舗装するのにはjjの値にかかわらずコストがpip_i、 座標(i,j)(i,j)(i,j+1)(i,j+1)にある家の間の道路を舗装するのにはiiの値にかかわらずコストがqjq_jかかります。

高橋君は、このうちいくつかの道路を舗装し、舗装された道路のみを通って任意の22つの家の間を行き来できるようにしたいです。 かかるコストの総和の最小値を求めてください。

制約

  • 1W,H1051 ≦ W,H ≦ 10^5
  • 1pi108(0iW1)1 ≦ p_i ≦ 10^8(0 ≦ i ≦ W-1)
  • 1qj108(0jH1)1 ≦ q_j ≦ 10^8(0 ≦ j ≦ H-1)
  • pi(0iW1)p_i(0 ≦ i ≦ W-1)は整数である
  • qj(0jH1)q_j(0 ≦ j ≦ H-1)は整数である

入力

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

WW HH p0p_0 : pW1p_{W-1} q0q_0 : qH1q_{H-1}

出力

コストの総和の最小値を表す整数を出力せよ。


入力例 1

2 2
3
5
2
7

出力例 1

29

次の88本の道路を舗装すればよいです。

  • (0,0)(0,0)(0,1)(0,1)にある家を結ぶ道路
  • (0,1)(0,1)(1,1)(1,1)にある家を結ぶ道路
  • (0,2)(0,2)(1,2)(1,2)にある家を結ぶ道路
  • (1,0)(1,0)(1,1)(1,1)にある家を結ぶ道路
  • (1,0)(1,0)(2,0)(2,0)にある家を結ぶ道路
  • (1,1)(1,1)(1,2)(1,2)にある家を結ぶ道路
  • (1,2)(1,2)(2,2)(2,2)にある家を結ぶ道路
  • (2,0)(2,0)(2,1)(2,1)にある家を結ぶ道路

入力例 2

4 3
2
4
8
1
2
9
3

出力例 2

60