电脑

提交数: 3, 通过率: 33.33%, 平均分: 56.67

题目描述:

兔警官朱迪的办公室有一台老式电脑,上面布满了灰尘。朱迪清理过后,准备用它来办公。发现这台电脑的键盘上面只有两个字母按键可以正常使用,即字母 'Z' 和 'O'。

朱迪想打出她最喜欢的字符串 $S$。该字符串由%n%个字母组成,每个字母是 'Z' 或 'O'。然而,她的电脑中了病毒。字母 'Z' 可以正常使用但当她每次尝试打出字母 'O' 她之前打出的所有字母都会翻转 'Z' 变成 'O' 或从 'O' 变成 'Z',然后 'O' 才出现

迪有可能打出她最喜欢的字符串吗?

调皮的狐狸尼克给朱迪一个参数 ,其值为$0$或 $1$。

  • 如果 $k=0$,那么朱迪只需要判断是否可能打出她最喜欢的字符串$S$ 。
  • 如果 $k=1$,那么朱迪首先需要判断是否可能打出她最喜欢的字符串$S$ ,其次如果能打出她最喜欢的字符串,那么朱迪还需要给出一个按键序列的例子,以便她能够打出她最喜欢的字符串$S$ 。

输入格式:

第一行包含一个整数 $k$,其中 $k$表示狐狸尼克给朱迪的参数值。

第二行包含一个整数 $n$ ,表示朱迪最喜欢的字符串 $S$的长度。

第三行包含一个字符串 $S$ 。保证 $S$中除了 'Z' 和 'O' 以外不会出现其他字符。

输出格式:

当$k=0$时,输出只有一行。如果朱迪不可能打出字符串  $S$,则输出 "NO";否则,输出 "YES"。

当$k=1$时,如果朱迪不可能打出字符串  $S$,则只输出一行 "NO";否则在第一行输出 "YES",第二行输出一个长度为 $n$的字符串,表示朱迪需要按顺序打出的字母序列,以便打出她最喜欢的字符串 $S$ 。

数据范围:

对于100%的数据, $0\lek\le1; \ 1 \le n \le 2000 $

样例输入:

(双击复制)
样例1:
0
3
ZOO

样例2:
0
5
OOZOO

样例3:
1
3
ZOO

样例4:
1
5
OOZOO


样例输出:

(双击复制)
样例1:
YES

样例2:
YES

样例3:
YES
OZO

样例4:
YES
ZOOZO

提示:

【样例4解释】

当朱迪打出 ZOOZO 时,字母的变化如下:

在打出第一个 Z 之前,朱迪有一个空字符串。之后,她有了字符串 Z。

在打出第一个 O 之后,Z 翻转为 O,然后 O 被追加,形成 OO。

在打出第二个 O 之后,OO 翻转为 ZZ,然后 O 被追加,形成 ZZO。

在打出第二个 Z 之后,朱迪有了字符串 ZZOZ。

在打出最后一个 O 之后,字符串 ZZOZ 翻转为 OOZO,然后 O 被追加,形成 OOZOO,正如所愿。

时间限制: 1000ms
空间限制: 256MB

来源: 26年比赛小学组t3