CF1526D Kill Anton
题目描述
在拒绝了 $10^{100}$ 个数据结构题目后,Errorgorn 对 Anton 非常生气,决定杀死他。
Anton 的 DNA 可以表示为一个只包含字符 "ANTON" 的字符串 $a$(实际上只有 $4$ 种不同的字符)。
Errorgorn 可以将 Anton 的 DNA 改变为字符串 $b$,其中 $b$ 必须是 $a$ 的一个排列。然而,Anton 的身体可以抵御这种攻击。在 $1$ 秒内,他的身体可以交换 DNA 中相邻的两个字符,将其逐步变回 $a$。Anton 的身体很聪明,会用最少的操作次数。
为了最大化 Anton 死亡的概率,Errorgorn 想要将 Anton 的 DNA 变成一个使 Anton 的身体恢复 DNA 所需时间最长的字符串。但由于 Errorgorn 忙于出更多的数据结构题,他需要你的帮助来找到最优的字符串 $b$。你能帮他吗?
输入格式
输入的第一行包含一个整数 $t$ $(1 \leq t \leq 100000)$,表示测试用例的数量。
每个测试用例的第一行包含一个字符串 $a$($1 \leq |a| \leq 100000$)。$a$ 只包含字符 "A"、"N"、"O" 和 "T"。
保证所有测试用例中 $|a|$ 的总和不超过 $100000$。
输出格式
对于每个测试用例,输出一个字符串 $b$。如果有多种答案,可以输出任意一种。$b$ 必须是字符串 $a$ 的一个排列。
说明/提示
对于第一个测试用例,将 NNOTA 变回 ANTON 需要 $7$ 秒:
NNOTA $\to$ NNOAT $\to$ NNAOT $\to$ NANOT $\to$ NANTO $\to$ ANNTO $\to$ ANTNO $\to$ ANTON。
注意,你不能输出如 AANTON、ANTONTRYGUB、AAAAA 和 anton 这样的字符串,因为它们不是 ANTON 的排列。
对于第二个测试用例,将 AANN 变回 NAAN 需要 $2$ 秒。注意,其他如 NNAA 和 ANNA 也可以被接受。
由 ChatGPT 4.1 翻译