P14797 [JOI 2026 二次预选] JOI 消去器 / JOI Eliminator

题目描述

由 $\texttt{J}, \texttt{O}, \texttt{I}$ 构成的长度为 $N$ 的字符串 $S$ 存在。 JOI 君对字符串 $S$ 重复进行如下操作,直到无法再进行任何操作为止。 - 在 $S$ 中选择一处 $\texttt{J}, \texttt{O}, \texttt{I}$ 按此顺序连续排列的部分,并将该部分替换为 $\texttt{O}, \texttt{I}, \texttt{J}$ 的排列。 可以证明,操作的重复必定会结束,并且无论操作方式如何,最终字符串的状态都是唯一确定的。 给出初始字符串 $S$ 的信息时,请编写程序求出最终的字符串 $S$。

输入格式

输入按如下格式给出。 > $N$ > $S$

输出格式

将最终的字符串 $S$ 用一行输出。

说明/提示

### 样例解释 #### 样例 $1$ 解释 例如,可以考虑 JOI 君如下进行操作。 最初,$S = \texttt{JOIJOI}$。 - 对第 $1$ 个字符到第 $3$ 个字符进行操作。$S = \texttt{OIJJOI}$。 - 对第 $4$ 个字符到第 $6$ 个字符进行操作。$S = \texttt{OIJOIJ}$。 - 对第 $3$ 个字符到第 $5$ 个字符进行操作。$S = \texttt{OIOIJJ}$。 由于无法再进行更多操作,因此输出 $\texttt{OIOIJJ}$。 该样例输入满足子任务 $1, 2, 4$ 的约束。 #### 样例 $2$ 解释 该样例输入满足子任务 $1, 3, 4$ 的约束。 #### 样例 $3$ 解释 该样例输入满足子任务 $1, 4$ 的约束。 ### 约束 - $3 \le N \le 500\,000$。 - $S$ 是由 $\texttt{J}, \texttt{O}, \texttt{I}$ 构成的长度为 $N$ 的字符串。 - $N$ 是整数。 ### 子任务 - (14 分)$N \le 100$。 - (27 分)$N$ 是 $3$ 的倍数,并且 $S$ 是将 $JOI$ 重复 $N / 3$ 次得到的字符串。 - (29 分)存在某个整数 $k$($2 \le k \le N$),使得从 $S$ 的第 $1$ 个字符到第 $k$ 个字符全都是 $\texttt{J}$,而从第 $k + 1$ 个字符开始之后都不是 $\texttt{J}$。 - (30 分)无额外约束。