#cpsco2019s3d. [cpsco2019_s3_d]Decode RGB Sequence

[cpsco2019_s3_d]Decode RGB Sequence

问题文

有一个长度为 NN 的棋盘,起初所有格子都被涂成了白色。每个格子从左到右编号为 1,2,,N1, 2, \ldots, N

对于棋盘上的连续的 33 个格子,按照从左到右的顺序依次使用红色、绿色和蓝色的印章进行染色。更准确地说,选择一个整数 ii (=1,2,,N2)(=1, 2, \ldots, N-2),将格子 ii 染成红色,格子 i+1i+1 染成绿色,格子 i+2i+2 染成蓝色。在这个操作中,如果某个格子已经有印迹,则可以在上面再次使用印章,而且每个被印过的格子的颜色会被新的印章的颜色覆盖。青木要一直进行这个操作,直到没有白色的格子为止。即使没有白色的格子,青木也可以继续操作,并在任意时刻终止操作。

请编写一个程序来判断是否可以在操作终止时实现所需的颜色组合。所需的颜色组合由长度为 NN 的字符串 SS 表示,对于 i=1,2,,Ni = 1, 2, \ldots, N,当 SiS_i = 'R' 时表示想要将第 ii 个格子染成红色,当 SiS_i = 'G' 时表示想要将第 ii 个格子染成绿色,当 SiS_i = 'B' 时表示想要将第 ii 个格子染成蓝色。

制约条件

  • 3N1053 \le N \le 10^5
  • S=N|S| = N
  • SS 是由 'R', 'G', 'B' 组成的字符串。

输入

从标准输入中以以下格式输入。

NN SS

输出

如果可以实现由字符串 SS 表示的颜色组合,请输出 "Yes",否则输出 "No"。


输入示例 1

4
RGBB

输出示例 1

Yes

首先,在后三个格子上使用印章,然后在前三个格子上再次使用印章,就可以得到 "RGBB"。


输入示例 2

6
RRGGBB

输出示例 2

No

输入示例 3

10
RGBBBGRRGB

输出示例 3

Yes