atcoder#ARC120D. [ARC120D] Bracket Score 2

[ARC120D] Bracket Score 2

配点 : 600600

問題文

括弧の対応が取れている文字列を、次のうちいずれかの条件を満たす文字列と定義します。

  • 空文字列
  • ある括弧の対応が取れている空でない文字列 s,ts, t が存在し、s,ts, t をこの順に連結した文字列
  • ある括弧の対応が取れている文字列 ss が存在し、 (, ss, ) をこの順に連結した文字列

また、括弧の対応が取れている文字列 ssii 文字目と jj 文字目が対応しているとは、以下の条件を全て満たすこととします。

  • 1i<js1 \le i < j \le |s|
  • si=s_i = (
  • sj=s_j = )
  • ssii 文字目と jj 文字目の間にある文字列 (ii 文字目と jj 文字目は含まない) は括弧の対応が取れている文字列である

長さ 2N2N の数列 A=(A1,A2,A3,,A2N)A = (A_1, A_2, A_3, \dots, A_{2N}) が与えられます。 括弧の対応が取れている長さ 2N2N の文字列 ssスコアを、ssii 文字目と jj 文字目が対応しているような全ての組 (i,j)(i, j) について AiAj|A_i - A_j| を足し合わせたものと定義します。

括弧の対応が取れている長さ 2N2N の文字列のうち、スコアが最大となるような文字列を 11 つ求めてください。

制約

  • 1N2×1051 \le N \le 2 \times 10^5
  • 1Ai1091 \le A_i \le 10^9
  • 入力に含まれる値は全て整数

入力

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

NN

A1A_1 A2A_2 A3A_3 \dots A2NA_{2N}

出力

長さ 2N2N の括弧の対応が取れている文字列のうち、スコアが最大となるような文字列を 11 つ出力せよ。 正しい答えが複数存在する場合、どれを出力しても正解と判定される。

2
1 2 3 4
(())

長さ 44 の括弧の対応が取れている文字列は (())()()22 種類あり、それぞれのスコアは以下の通りです。

  • (()) : 14+23=4|1 - 4| + |2 - 3| = 4
  • ()() : 12+34=2|1 - 2| + |3 - 4| = 2

よって、(()) のみが正しい答えとなります。

2
2 3 2 3
()()

(())()() のスコアは以下の通りです。

  • (()) : 23+32=2|2 - 3| + |3 - 2| = 2
  • ()() : 23+23=2|2 - 3| + |2 - 3| = 2

よって、この場合どちらを出力しても正解となります。