#P0210. B. 旋转(rotation)

B. 旋转(rotation)

题目描述

给定一个长度为 NN 的由小写字母组成的字符串 S=S1S2SNS=S_1S_2\dots S_N。你需要对 SS 执行恰好一次以下操作:

  • 选择 SS 的一个长度至少为 1 的连续子串,将其向左循环移位 1 次。具体来说,选择整数 1rN1 \leq \ell \leq r \leq N,将 SS 的第 \ell 个字符插入到第 rr 个字符的右侧,然后删除 SS 的第 \ell 个字符。

请找出所有可能的操作后 SS 中字典序最小的字符串。

共有 TT 个测试用例,请对每个测试用例给出答案。

输入格式

输入通过标准输入给出,格式如下:

TT
case1\mathrm{case}_1
case2\mathrm{case}_2
\vdots
caseT\mathrm{case}_T

每个测试用例 casei\mathrm{case}_i1iT1 \leq i \leq T)的格式如下:

NN
SS

输出格式

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

输入输出样例 #1

输入 #1

3
7
atcoder
1
x
5
snuke

输出 #1

acodert
x
nsuke

说明/提示

约束条件

  • 1T1051 \leq T \leq 10^5
  • 1N1051 \leq N \leq 10^5
  • SS 是由小写字母组成的长度为 NN 的字符串
  • TTNN 为整数
  • 单个输入文件中所有测试用例的 NN 之和不超过 10510^5

样例解释 1

  • 对于第 1 个测试用例,选择第 2 到第 7 个字符进行循环移位,得到 acodert 是字典序最小的结果。
  • 对于第 2 个测试用例,无论如何操作都只能得到 x
  • 对于第 3 个测试用例,选择第 1 到第 2 个字符进行循环移位,得到 nsuke 是字典序最小的结果。

翻译由 DeepSeek V3 完成