CF219C Color Stripe

题目描述

一条彩色条纹由 $n$ 个水平排列的方格组成,每个方格被涂成 $k$ 种颜色中的一种。你的任务是重新涂色最少数量的方格,使得任何两个相邻方格的颜色都不相同。你可以使用 $1$ 到 $k$ 中的任意颜色重新涂色方格。

输入格式

第一行输入两个整数 $n$ 和 $k$($1 \leq n \leq 5 \cdot 10^{5}$,$2 \leq k \leq 26$)。 第二行输入 $n$ 个大写英文字母。"A" 表示第一种颜色,"B" 表示第二种颜色,以此类推。将会只用前 $k$ 个大写英文字母。每个字母表示对应方格的颜色。

输出格式

输出一行一个整数,表示所需重新涂色的最小数目。 第二行输出任意一种可能的重新涂色后的条纹。

说明/提示

由 ChatGPT 5 翻译