AT_abc064_d [ABC064D] Insertion
Description
[problemUrl]: https://atcoder.jp/contests/abc064/tasks/abc064_d
`(` と `)` で構成される $ N $ 文字の文字列 $ S $ が与えられる。$ S $ にいくつかの `(` または `)` を挿入することで正しい括弧列を作りたい。
ただし、正しい括弧列は次のように定義されている:
- `()` は正しい括弧列である。
- $ X $ が正しい括弧列であるとき、`(`、$ X $、`)` をこの順につなげたものは正しい括弧列である。
- $ X $、$ Y $ が正しい括弧列であるとき、$ X $ と $ Y $ をこの順につなげたものは正しい括弧列である。
- それ以外の括弧列は正しくない。
そのとき、作れる最も文字数が少ない正しい括弧列を求めなさい。このようなものが複数ある場合は、辞書順最小のものを求めなさい。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ S $
Output Format
$ S $ から `(`、`)` を挿入していったときに作れる最小の長さの正しい括弧列のなかで辞書順最小の文字列を出力しなさい。
Explanation/Hint
### 制約
- $ S $ の長さは $ N $ である。
- $ 1\