AT_abc409_d [ABC409D] String Rotation

题目描述

[problemUrl]: https://atcoder.jp/contests/abc409/tasks/abc409_d 给定一个长度为 $N$ 的由小写字母组成的字符串 $S=S_1S_2\dots S_N$。你需要对 $S$ 执行恰好一次以下操作: - 选择 $S$ 的一个长度至少为 1 的连续子串,将其向左循环移位 1 次。具体来说,选择整数 $1 \leq \ell \leq r \leq N$,将 $S$ 的第 $\ell$ 个字符插入到第 $r$ 个字符的右侧,然后删除 $S$ 的第 $\ell$ 个字符。 请找出所有可能的操作后 $S$ 中字典序最小的字符串。 共有 $T$ 个测试用例,请对每个测试用例给出答案。

输入格式

输入通过标准输入给出,格式如下: > $T$ > $\mathrm{case}_1$ > $\mathrm{case}_2$ > $\vdots$ > $\mathrm{case}_T$ 每个测试用例 $\mathrm{case}_i$($1 \leq i \leq T$)的格式如下: > $N$ > $S$

输出格式

输出 $T$ 行。第 $i$ 行($1 \leq i \leq T$)输出 $\mathrm{case}_i$ 对应的答案。

说明/提示

### 约束条件 - $1 \leq T \leq 10^5$ - $1 \leq N \leq 10^5$ - $S$ 是由小写字母组成的长度为 $N$ 的字符串 - $T$ 和 $N$ 为整数 - 单个输入文件中所有测试用例的 $N$ 之和不超过 $10^5$ ### 样例解释 1 - 对于第 1 个测试用例,选择第 2 到第 7 个字符进行循环移位,得到 `acodert` 是字典序最小的结果。 - 对于第 2 个测试用例,无论如何操作都只能得到 `x`。 - 对于第 3 个测试用例,选择第 1 到第 2 个字符进行循环移位,得到 `nsuke` 是字典序最小的结果。 翻译由 DeepSeek V3 完成