#arc113e. [arc113_e]Rvom and Rsrev

[arc113_e]Rvom and Rsrev

問題文

ab からなる文字列 SS が与えられます。SS に以下の操作を 00 回以上繰り返してできる辞書順最大の文字列を求めてください。

  • 同一の文字である SS22 箇所の文字を選ぶ。それらの間の文字列を前後反転させ、選んだ 22 文字を削除する。すなわち、SSii 文字目を sis_i と表すことにすれば、si=sjs_i=s_j なる i<ji < j を選んで SSs1dotssi1sj1dotssi+1sj+1dotssSs_1\\dots s_{i-1}s_{j-1}\\dots s_{i+1}s_{j+1}\\dots s_{|S|} で置き換える。

なお、この問題ではテストケースが TT 個与えられます。ii 個目のテストケースは文字列 SiS_i で表され、S=SiS=S_i に対して上記の問題を解く問題です。

制約

  • 1leqTleq2times1051 \\leq T \\leq 2\\times 10^5
  • 1leqSiquad(i=1,dots,T)1 \\leq |S_i|\\quad (i=1,\\dots, T)
  • 1leqS1+dots+STleq2times1051 \\leq |S_1| + \\dots + |S_T| \\leq 2\\times 10^5
  • SiS_iab からなる

入力

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

TT S1S_1 vdots\\vdots STS_T

出力

TT 行出力せよ。ii 行目には、SiS_i に操作を 00 回以上繰り返してできる辞書順最大の文字列を出力せよ。


入力例 1

20
abbaa
babbb
aabbabaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbabaaaaabbaababaaabbabbbbbaaaaa
babbbaaaabaababbbabaabaaaaababaa
bbaababababbbaaabaabababaabbabab
abaabbabaabaaaaabaaaabbaabaaaaab
aabababbabbabbabbaaaabbabbbabaab
aabababbabbbbaaaabbaaaaabbaaaabb
abbbbaabaaabababaaaababababbaabb
aaaaaaaaaaaaaaaaaaaaaaabbbbbbbbb
aaaaaaaaaabbbbbbbbbbbbbbbbbbbbbb
abababaaababaaabbbbbaaaaaaabbbbb
aabbaaaaababaabbbbbbbbbaabaaabbb
babababbababbbababbbbbababbbabbb
bbbbababbababbbabababbabbabbbbbb
aaaaaaaaaaaaaaaaababababbbabbbbb
aabababbabbabababababababbbbabbb

出力例 1

bba
bba
bbba
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbaaaaaaaa
bbbbbbbbbbbbbaaaaaaa
bbbbbbbbbbbbbbbb
bbbbbbbbbb
bbbbbbbbbbbbbbbbab
bbbbbbbbbbbbbb
bbbbbbbbbbbbbabb
abbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbaaaaaaaaa
bbbbbbbbbbbbbbbaaaaa
bbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbba
bbbbbbbbbaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbba
  • 11 個目のテストケースは、11 文字目と 44 文字目に対して操作を行うことで SSbba にできます。
  • 22 個目のテストケースは、11 文字目と 55 文字目に対して操作を行うことで SSbba にできます。
  • 33 個目のテストケースは、11 文字目と 22 文字目に対して操作を行うことで SSbbabaa にでき、その後 33 文字目と 55 文字目に対して操作を行うことで SSbbba にできます。