luogu#P7919. [Kubic] ABC

[Kubic] ABC

题目背景

建议先看 D 题题目背景。

题目描述

给定一个长度为 nn 的只包含 A,B,C\texttt{A,B,C} 的字符串 SS,你可以进行若干次操作,每次操作为:

  • 先选择一个区间 [l,r][l,r],你需要保证 1lrn1\le l\le r\le n

  • 再选择三个字符 pA,pB,pC{A,B,C}pA,pB,pC\in\{\texttt{A,B,C}\},并将 SlrS_{l\dots r} 中所有 A\texttt{A} 变为 pApA,所有 B\texttt{B} 变为 pBpB,所有 C\texttt{C} 变为 pCpCpA,pB,pCpA,pB,pC 可以相等

求出最少需要进行多少次操作才能使得 SS任意相邻两个字符不同,并输出构造方案

输入格式

第一行,一个整数 nn

第二行,一个长度为 nn 的字符串 SS

输出格式

第一行,一个整数 mm,表示你所构造的方案的操作次数。

接下来 mm 行,每行两个整数 l,rl,r 和三个字符 pA,pB,pCpA,pB,pC

你需要保证 1lrn,pA,pB,pC{A,B,C}1\le l\le r\le n,pA,pB,pC\in\{\texttt{A,B,C}\}

注意:pA,pB,pCpA,pB,pC 之间不需要,也不应该加空格(参考样例输出)

5
ABBAA
1
3 4 BAC
5
ABCBA
0

提示

对于 100%100\% 的数据,1n5×103,Si{A,B,C}1\le n\le 5\times 10^3,S_i\in\{\texttt{A,B,C}\}

分值 nn 特殊性质
Subtask1\operatorname{Subtask}1 11 无特殊限制 i[1,n),SiSi+1\forall i\in[1,n),S_i\neq S_{i+1}
Subtask2\operatorname{Subtask}2 1919 10\le 10
Subtask3\operatorname{Subtask}3 1010 无特殊限制 Si=AS_i=\texttt{A}
Subtask4\operatorname{Subtask}4 2020 Si{A,B}S_i\in\{\texttt{A,B}\}
Subtask5\operatorname{Subtask}5 100\le 100
Subtask6\operatorname{Subtask}6 3030 无特殊限制

评分方法

以下情况将会使你在该测试点获得 00 分:

  • 输出格式不满足要求。

  • 输出多余信息(包括空格和换行符)

  • 构造的方案操作次数与标准答案不同。

  • 构造的方案不符合题目要求。

  • 时间超限。

如果没有上述情况,你在该测试点获得满分。

保证 SPJ 占用不超过 100ms,10MB100\operatorname{ms},10\operatorname{MB}

样例解释 1

一种操作过程如下:

ABBAA

ABABA

可以证明没有更优的方案。

样例解释 2

初始序列已经符合题目要求,直接输出一行 00 即可。