AT_arc113_e [ARC113E] Rvom and Rsrev
Description
[problemUrl]: https://atcoder.jp/contests/arc113/tasks/arc113_e
`a` と `b` からなる文字列 $ S $ が与えられます。$ S $ に以下の操作を $ 0 $ 回以上繰り返してできる辞書順**最大**の文字列を求めてください。
- 同一の文字である $ S $ の $ 2 $ 箇所の文字を選ぶ。それらの間の文字列を前後反転させ、選んだ $ 2 $ 文字を削除する。すなわち、$ S $ の $ i $ 文字目を $ s_i $ と表すことにすれば、$ s_i=s_j $ なる $ i\
Input Format
入力は以下の形式で標準入力から与えられる。
> $ T $ $ S_1 $ $ \vdots $ $ S_T $
Output Format
$ T $ 行出力せよ。$ i $ 行目には、$ S_i $ に操作を $ 0 $ 回以上繰り返してできる辞書順最大の文字列を出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ T\ \leq\ 2\times\ 10^5 $
- $ 1\ \leq\ |S_i|\quad\ (i=1,\dots,\ T) $
- $ 1\ \leq\ |S_1|\ +\ \dots\ +\ |S_T|\ \leq\ 2\times\ 10^5 $
- $ S_i $ は `a` と `b` からなる
### Sample Explanation 1
\- $ 1 $ 個目のテストケースは、$ 1 $ 文字目と $ 4 $ 文字目に対して操作を行うことで $ S $ を `bba` にできます。 - $ 2 $ 個目のテストケースは、$ 1 $ 文字目と $ 5 $ 文字目に対して操作を行うことで $ S $ を `bba` にできます。 - $ 3 $ 個目のテストケースは、$ 1 $ 文字目と $ 2 $ 文字目に対して操作を行うことで $ S $ を `bbabaa` にでき、その後 $ 3 $ 文字目と $ 5 $ 文字目に対して操作を行うことで $ S $ を `bbba` にできます。