atcoder#AGC048B. [AGC048B] Bracket Score

[AGC048B] Bracket Score

配点 : 700700

問題文

この問題では,(,),[,] からなる文字列を考えます.

文字列 xx は,以下のいずれかの条件を満たす時,良い括弧列と呼ばれます.

  • xx は空文字列である.
  • ある良い括弧列 ss が存在し,(,ss,) をこの順に連結すると xx が得られる.
  • ある良い括弧列 ss が存在し,[,ss,] をこの順に連結すると xx が得られる.
  • ある空でない良い括弧列 ss および tt が存在し,s,ts,t をこの順に連結すると xx が得られる.

例えば,[], ([()]), ()[()] などは良い括弧列ですが,()), ([)] などは良い括弧列ではありません.

偶数 NN と,長さ NN の整数列 AA および BB が与えられます. ここで,長さ NN の良い括弧列 s=s1s2sNs=s_1s_2\cdots s_N に対して,ss のスコアを次のように定めます.

  • ss のスコアは,各文字のスコアの合計である.
  • ii 文字目 (1iN1 \leq i \leq N) のスコアは,sis_i( または ) ならば AiA_i であり,sis_i[ または ] ならば BiB_i である.

長さ NN の良い括弧列のスコアとしてあり得る最大の値を求めてください.

制約

  • 2N1052 \leq N \leq 10^5
  • NN は偶数
  • 1Ai1091 \leq A_i \leq 10^9
  • 1Bi1091 \leq B_i \leq 10^9
  • 入力される数はすべて整数.

入力

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

NN

A1A_1 A2A_2 \cdots ANA_N

B1B_1 B2B_2 \cdots BNB_N

出力

答えを出力せよ.

4
4 2 3 1
2 3 2 4
12

s=s=()[] とするとスコアが A1+A2+B3+B4=12A_1+A_2+B_3+B_4=12 になり,これが最大です.

10
866111664 844917655 383133839 353498483 472381277 550309930 378371075 304570952 955719384 705445072
178537096 218662351 231371336 865935868 579910117 62731178 681212831 16537461 267238505 318106937
6629738472