AT_arc227_c [ARC227C] Follow the Letters
题目描述
给定一个长度为 $N$ 的字符串 $S$,该字符串仅包含小写英文字母。令 $S_i$ 表示 $S$ 的第 $i$ 个字符。
有 $N$ 个岛屿呈环状排列,编号为岛屿 $1$、岛屿 $2$、$\ldots$、岛屿 $N$,按顺时针方向排列。特别地,顺时针相邻于岛屿 $N$ 的是岛屿 $1$。第 $i$ 个岛屿上写有字符 $S_i$。初始时,每个岛屿上都有一个人。
你可以执行以下操作,操作次数不限(可以为零):
- 选择 $S$ 中出现过的某个字符 $c$。此时每个人都离开当前所在的岛屿,并每次顺时针依次移动一个岛屿,直到第一次到达有字符 $c$ 的岛屿时停下。即便当前岛屿上写有字符 $c$,此人也要离开。
令 $K$ 表示所有操作结束后,至少有一个人所在的岛屿的最小可能数量。
请你求出 $K$ 的最小值,以及一种能够使有人的岛屿数量达到 $K$ 的操作序列。
在本题约束下,可以证明一定存在长度不超过 $10^6$ 的操作序列,使得操作结束后有人的岛屿数量为 $K$。
输入格式
输入包含一行,格式如下:
> $N\ S$
输出格式
设 $L$ 为操作次数,$X$ 为操作序列。请按以下格式输出:
> $K\ L\ X$
如果 $L=0$,则第三行输出为空行。
$L$ 需满足 $0 \le L \le 10^6$。
$X$ 必须是长度为 $L$ 的字符串,仅由 $S$ 中出现过的字符组成,第 $i$ 个字符表示第 $i$ 次选择的字符。
按照操作序列 $X$ 执行后,有人的岛屿数量必须为 $K$。
如有多种满足条件的输出,均可。
说明/提示
### 样例解释 1
如果选择字符 `b` 进行操作,所有人都会聚集到写有字符 `b` 的岛屿上。此时有人的岛屿数为 $1$,且这是最小值。
### 样例解释 2
先选择 `a` 操作,再选择 `b` 操作,所有人会聚集到同一个岛屿。有人的岛屿数为 $1$,这是最小值。
### 样例解释 3
无论如何操作,每个人都会移动到下一个顺时针岛屿。有人的岛屿数始终为 $4$,所以 $K=4$。此样例输出未进行任何操作。
### 约束条件
- $1 \le N \le 1000$
- $S$ 是一个长度为 $N$ 的由小写英文字母组成的字符串。
- $N$ 是一个整数。
由 ChatGPT 5 翻译