#S50003. 左右括号删除

左右括号删除

题目描述

给定一个由小写英文字母以及 () 组成的长度为 NN 的字符串 SS
请重复执行如下操作,直到无法继续为止,并输出最终的 SS

  • 可以任选 SS 的一个连续子串,要求该子串的第一个字符为 (,最后一个字符为 ),且除了首尾之外不包含任何 (),然后将这个子串删除。

可以证明,无论操作顺序如何,最终得到的 SS 是唯一的。

输入格式

第一行包含两个整数 NN 和一个字符串 SS,以空格分隔。

输出格式

输出最终的字符串 SS

样例输入 1

8
a(b(d))c

样例输出 1

ac

样例输入 2

5
a(b)(

样例输出 2

a(

样例输入 3

2
()

样例输出 3


样例输入 4

6
)))(((

样例输出 4

)))(((

约束条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • SS 是由小写英文字母和 () 组成的长度为 NN 的字符串。

样例解释

  • 样例 1
    例如,可以按如下步骤操作,最终 SS 变为 ac

    • 删除 SS 的第 44 个到第 66 个字符组成的子串 (d),此时 SS 变为 a(b)c
    • 删除 SS 的第 22 个到第 44 个字符组成的子串 (b),此时 SS 变为 ac
    • 此时无法再进行操作。
  • 样例 3
    最终的 SS 可能为空字符串。