AT_abc350_f [ABC350F] Transpose

Description

[problemUrl]: https://atcoder.jp/contests/abc350/tasks/abc350_f 英大小文字と `(` 、 `)` からなる文字列 $ S=S_1\ S_2\ S_3\ \dots\ S_{|S|} $ が与えられます。 文字列 $ S $ 中の括弧は、対応が取れています。 次の操作を、操作ができなくなるまで繰り返します。 - まず、以下の条件を全て満たす整数組 $ (l,r) $ をひとつ選択する。 - $ l\

Input Format

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

Output Format

答えを出力せよ。

Explanation/Hint

### 制約 - $ 1\ \le\ |S|\ \le\ 5\ \times\ 10^5 $ - $ S $ は英大小文字と `(` 、 `)` からなる - $ S $ 中の括弧は対応が取れている ### Sample Explanation 1 $ S= $ `((A)y)x` に対して操作を行います。 - $ l=2,r=4 $ を選択します。このとき削除される文字列は `(A)` で、代わりに `a` が挿入されます。 - この操作の結果、 $ S= $ `(ay)x` となります。 - $ l=1,r=4 $ を選択します。このとき削除される文字列は `(ay)` で、代わりに `YA` が挿入されます。 - この操作の結果、 $ S= $ `YAx` となります。 括弧を除去した結果、文字列は `YAx` となったので、これを出力してください。 ### Sample Explanation 2 $ S= $ `((XYZ)n(X(y)Z))` に対して操作を行います。 - $ l=10,r=12 $ を選択します。このとき削除される文字列は `(y)` で、代わりに `Y` が挿入されます。 - この操作の結果、 $ S= $ `((XYZ)n(XYZ))` となります。 - $ l=2,r=6 $ を選択します。このとき削除される文字列は `(XYZ)` で、代わりに `zyx` が挿入されます。 - この操作の結果、 $ S= $ `(zyxn(XYZ))` となります。 - $ l=6,r=10 $ を選択します。このとき削除される文字列は `(XYZ)` で、代わりに `zyx` が挿入されます。 - この操作の結果、 $ S= $ `(zyxnzyx)` となります。 - $ l=1,r=9 $ を選択します。このとき削除される文字列は `(zyxnzyx)` で、代わりに `XYZNXYZ` が挿入されます。 - この操作の結果、 $ S= $ `XYZNXYZ` となります。 括弧を除去した結果、文字列は `XYZNXYZ` となったので、これを出力してください。 ### Sample Explanation 3 操作結果が空文字列になる場合もあります。