CF957A Tritonic Iridescence

题目描述

在欣赏着无数春日色彩交织的美景时,画家 Arkady 摆出了一块很长很长的画布。 Arkady 拥有足够多的三种颜色的颜料:青色、品红和黄色。在这条被分成 $n$ 个连续段的一维画布上,每一段都需要被涂上一种颜色。 Arkady 已经涂好了其中一些(可能没有,也可能全部)段,现在他把画笔交给你。你需要判断,是否存在至少两种不同的方法来为所有未涂色的段上色,使得没有两个相邻的段颜色相同。如果且仅有某一段在两种方案中被涂上了不同的颜色,这两种方案才被认为是不同的。

输入格式

第一行包含一个正整数 $n$($1 \leq n \leq 100$),表示画布的长度。 第二行包含一个长度为 $n$ 的字符串 $s$,第 $i$ 个字符为 'C'(表示该段已被涂为青色)、'M'(表示已被涂为品红)、'Y'(表示已被涂为黄色),或 '?'(表示该段尚未涂色)。

输出格式

如果存在至少两种不同的上色方法,输出 "Yes";否则输出 "No"(不带引号)。 你可以用任意大小写输出每个字符。

说明/提示

对于第一个样例,恰好有两种不同的上色方法:CYCMY 和 CYMCY。 对于第二个样例,也恰好有两种不同的上色方法:CMCMY 和 CYCMY。 对于第三个样例,有四种上色方法:MCYCM、MCYCY、YCYCM 和 YCYCY。 对于第四个样例,无论如何为未涂色的段上色,已存在的品红段都会导致无法满足要求。第五个样例同理。 由 ChatGPT 4.1 翻译