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 分)无额外约束。