atcoder#ARC120D. [ARC120D] Bracket Score 2
[ARC120D] Bracket Score 2
配点 : 点
問題文
括弧の対応が取れている文字列を、次のうちいずれかの条件を満たす文字列と定義します。
- 空文字列
- ある括弧の対応が取れている空でない文字列 が存在し、 をこの順に連結した文字列
- ある括弧の対応が取れている文字列 が存在し、
(
, ,)
をこの順に連結した文字列
また、括弧の対応が取れている文字列 の 文字目と 文字目が対応しているとは、以下の条件を全て満たすこととします。
-
(
-
)
- の 文字目と 文字目の間にある文字列 ( 文字目と 文字目は含まない) は括弧の対応が取れている文字列である
長さ の数列 が与えられます。 括弧の対応が取れている長さ の文字列 のスコアを、 の 文字目と 文字目が対応しているような全ての組 について を足し合わせたものと定義します。
括弧の対応が取れている長さ の文字列のうち、スコアが最大となるような文字列を つ求めてください。
制約
- 入力に含まれる値は全て整数
入力
入力は以下の形式で標準入力から与えられる。
出力
長さ の括弧の対応が取れている文字列のうち、スコアが最大となるような文字列を つ出力せよ。 正しい答えが複数存在する場合、どれを出力しても正解と判定される。
2
1 2 3 4
(())
長さ の括弧の対応が取れている文字列は (())
と ()()
の 種類あり、それぞれのスコアは以下の通りです。
(())
:()()
:
よって、(())
のみが正しい答えとなります。
2
2 3 2 3
()()
(())
と ()()
のスコアは以下の通りです。
(())
:()()
:
よって、この場合どちらを出力しても正解となります。