#ATarc120d. [ARC120D] Bracket Score 2

[ARC120D] Bracket Score 2

题目描述

我们将括号匹配的字符串定义为满足以下任一条件的字符串:

  • 空字符串。
  • 存在某些括号匹配的非空字符串 s, ts,\ t,将 sstt 按顺序连接得到的字符串。
  • 存在某个括号匹配的字符串 ss,将 (ss) 按顺序连接得到的字符串。

此外,对于括号匹配的字符串 ss,我们称 ss 的第 ii 个字符和第 jj 个字符匹配,当且仅当满足以下所有条件:

  • 1i<js1 \le i < j \le |s|
  • si=s_i = (
  • sj=s_j = )
  • ss 的第 ii 个字符和第 jj 个字符之间的子串(不包括 iijj 这两个字符)是一个括号匹配的字符串。

给定一个长度为 2N2N 的数列 A=(A1,A2,A3,,A2N)A = (A_1, A_2, A_3, \dots, A_{2N})
对于长度为 2N2N 的括号匹配的字符串 ss,定义其得分为:对所有 ss 中匹配的字符对 (i,j)(i, j),将 AiAj|A_i - A_j| 的值累加起来。

请你求出所有长度为 2N2N 的括号匹配的字符串中,得分最大的一个字符串。输出任意一个即可。

输入格式

输入以如下格式从标准输入读入:

NN A1A_1 A2A_2 A3A_3 \dots A2NA_{2N}

输出格式

请输出一个长度为 2N2N 的括号匹配的字符串,使其得分最大。
如果有多个答案,输出其中任意一个均可。

样例 1

输入

2
1 2 3 4

输出

(())

样例 2

输入

2
2 3 2 3

输出

()()

说明/提示

数据范围

  • 1N2×1051 \le N \le 2 \times 10^5
  • 1Ai1091 \le A_i \le 10^9
  • 输入中的所有值均为整数。

样例解释 1

长度为 44 的括号匹配的字符串有两种:(())()(),它们的得分如下:

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

因此,只有 (()) 是正确答案。

样例解释 2

(())()() 的得分如下:

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

因此,这种情况下输出任意一个都是正确答案。

由 ChatGPT 4.1 翻译