P16968 [SCCPC 2026] 博德之跃 3

题目描述

给定一个由小写英文字母组成的字符串 $S$,以及一个初始为空的字符串 $T$。 你需要对 $S$ 执行若干次操作,直到它变为空字符串。每次你可以执行以下三种操作中的一种: - 删除 $S$ 的第一个字符,并将其添加到 $T$ 的末尾。 - 删除 $S$ 的最后一个字符,并将其添加到 $T$ 的末尾。 - 选择非空串 $A,B$ 满足 $S = ABA^R$,令 $S=B$ 并将字符串 $A$ 添加到 $T$ 的末尾。 其中 $A^R$ 表示字符串 $A$ 的反串。 求在所有操作方案中,能得到的字典序最小的 $T$。

输入格式

本题有多组测试数据。 输入第一行一个正整数 $t$($1 \le t \le 10^5$),表示测试数据组数。 每组测试数据: 输入一行一个由小写字母组成的字符串 $S$($1 \le |S| \le 5 \times 10^5$)。 保证所有测试数据 $|S|$ 之和不超过 $5 \times 10^5$。

输出格式

每组测试数据输出一行一个字符串表示答案。