AT_joi2009yo_c.連鎖
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有如下的一个游戏。
有 N 个角色竖直排列成 1 列。这些角色的颜色可以是红色、蓝色或黄色,初始状态下不会有 4 个及以上相同颜色的角色连续排列。玩家可以选择某个位置的角色,将其颜色更改为其他颜色。如果通过这次操作后,出现了 4 个及以上相同颜色的角色连续排列,那么这些角色会被消除。由于角色被消除,可能会再次出现 4 个及以上相同颜色的角色连续排列,这些角色也会被消除。这个连锁反应会一直持续,直到没有 4 个及以上相同颜色的角色连续排列为止。游戏的目标是让最终未被消除的角色数尽可能少。
例如,下图左侧的初始状态下,将从上往下第 6 个角色的颜色从黄色改为蓝色后,会出现 5 个连续的蓝色角色被消除,最终只剩下 3 个角色未被消除。

给定初始状态下 N 个角色的颜色排列,请编写程序,求只更改一个角色颜色后,最终未被消除的角色数的最小值 M。
输入格式
第 1 行为角色数 N,满足 1≤N≤10000。接下来的 N 行,每行包含一个整数 1、2 或 3,表示初始状态下从上往下第 i 个角色的颜色(1 表示红色,2 表示蓝色,3 表示黄色)。
输出格式
输出只更改一个角色颜色后,最终未被消除的角色数的最小值 M。
输入输出样例
输入#1
12 3 2 1 1 2 3 2 2 2 1 1 3
输出#1
3
输入#2
12 3 2 1 1 2 3 2 1 3 2 1 3
输出#2
12
说明/提示
样例解释 1
——
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?