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