問題一覧 > 通常問題

No.2591 安上がりな括弧列

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 73
作問者 : H20 / テスター : minato
2 ProblemId : 10351 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2023-12-10 23:06:53

問題文

() のみからなる文字列を括弧列と呼ぶことにします。

長さ 2N2N の括弧列 SS があります。

ii 文字目は AiA_i のコストを払うことで、 ()に、 )(に入れ替えることができます。

括弧列 SS を整合している状態にするためのコストの最小値を答えてください。

括弧列 SS に対して、連続する 22 文字が () である箇所を除去する操作を 00 回以上繰り返すことで空文字にできるとき、括弧列 SS は整合しているといいます。

入力

NN
SS
A1A_1 A2A_2 \ldots A2NA_{2N}

制約

  • 1N1000 1 \le N \le 1000
  • S=2N|S|=2N
  • SS()のみからなる
  • 1Ai109 1 \le A_i \le 10^{9}
  • N,AiN,A_i は整数

出力

括弧列 SS を整合している状態にするためのコストの最小値を出力してください。

最後に改行してください。

サンプル

サンプル1
入力
3
)(((()
10 22 3 5 2 13
出力
15

11 文字目と 33 文字目と 55 文字目を入れ替えることで括弧列は(()())となり整合している状態となります。 コストは 1515 でこれより小さなコストで整合させることはできないため、 1515が答えとなります。

サンプル2
入力
4
()(()())
3141592 653589 793238 462643 38327 9502884 1971 69399375
出力
0

元から整合している場合もあります。

サンプル3
入力
5
((((((((((
1 2 3 4 5 6 7 8 9 10
出力
30

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。