[Kubic] ABC

题目背景

建议先看 D 题题目背景。

题目描述

给定一个长度为 $n$ 的只包含 $\texttt{A,B,C}$ 的字符串 $S$,你可以进行若干次操作,每次操作为: - 先选择一个区间 $[l,r]$,你需要保证 $1\le l\le r\le n$。 - 再选择三个字符 $pA,pB,pC\in\{\texttt{A,B,C}\}$,并将 $S_{l\dots r}$ 中所有 $\texttt{A}$ 变为 $pA$,所有 $\texttt{B}$ 变为 $pB$,所有 $\texttt{C}$ 变为 $pC$,**$pA,pB,pC$ 可以相等**。 求出**最少**需要进行多少次操作才能使得 $S$ 中**任意相邻两个字符不同**,并**输出构造方案**。

输入输出格式

输入格式


第一行,一个整数 $n$。 第二行,一个长度为 $n$ 的字符串 $S$。

输出格式


第一行,一个整数 $m$,表示你所构造的方案的操作次数。 接下来 $m$ 行,每行两个整数 $l,r$ 和三个字符 $pA,pB,pC$。 你需要保证 $1\le l\le r\le n,pA,pB,pC\in\{\texttt{A,B,C}\}$。 **注意:$pA,pB,pC$ 之间不需要,也不应该加空格(参考样例输出)**。

输入输出样例

输入样例 #1

5
ABBAA

输出样例 #1

1
3 4 BAC

输入样例 #2

5
ABCBA

输出样例 #2

0

说明

对于 $100\%$ 的数据,$1\le n\le 5\times 10^3,S_i\in\{\texttt{A,B,C}\}$。 ||分值|$n$|特殊性质| |:-:|:-:|:-:|:-:| |$\operatorname{Subtask}1$|$1$|无特殊限制|$\forall i\in[1,n),S_i\neq S_{i+1}$| |$\operatorname{Subtask}2$|$19$|$\le 10$|无| |$\operatorname{Subtask}3$|$10$|无特殊限制|$S_i=\texttt{A}$| |$\operatorname{Subtask}4$|$20$|无特殊限制|$S_i\in\{\texttt{A,B}\}$| |$\operatorname{Subtask}5$|$20$|$\le 100$|无| |$\operatorname{Subtask}6$|$30$|无特殊限制|无| ### 评分方法 以下情况将会使你在该测试点获得 $0$ 分: - 输出格式不满足要求。 - 输出多余信息(包括空格和换行符) - 构造的方案操作次数与标准答案不同。 - 构造的方案不符合题目要求。 - 时间超限。 如果没有上述情况,你在该测试点获得满分。 **保证 SPJ 占用不超过 $100\operatorname{ms},10\operatorname{MB}$**。 ### 样例解释 1 一种操作过程如下: `ABBAA` `ABABA` 可以证明没有更优的方案。 ### 样例解释 2 初始序列已经符合题目要求,直接输出一行 $0$ 即可。