#aBC166F. [ABC166F] Three Variables Game

[ABC166F] Three Variables Game

AT_abc166_f [ABC166F] Three Variables Game

题目描述

在某个游戏中,有三个变量,分别用 AABBCC 表示。

随着游戏的进行,你需要进行 NN 次选择。每一次选择由字符串 sis_i 表示,当 sis_iAB 时,表示你可以选择给 AABB11,同时从另一个变量减去 11;当 sis_iAC 时,表示你可以选择给 AACC11,同时从另一个变量减去 11;当 sis_iBC 时,表示你可以选择给 BBCC11,同时从另一个变量减去 11

在每一次选择之后,AABBCC 的值都不能为负数。

请判断是否存在一种选择方式,使得能够完成全部 NN 次选择且始终满足上述条件。如果存在,请给出一种可行的选择方案。

输入格式

输入以如下格式从标准输入读入:

NN AA BB CC
s1s_1
s2s_2
\vdots
sNs_N

输出格式

如果存在一种选择方式能够完成全部 NN 次选择且始终满足条件,则输出 Yes,否则输出 No

如果输出 Yes,则在接下来的 NN 行中,依次输出每次选择中被加 11 的变量名(ABC)。

输入输出样例 #1

输入 #1

2 1 3 0
AB
AC

输出 #1

Yes
A
C

输入输出样例 #2

输入 #2

3 1 0 0
AB
BC
AB

输出 #2

No

输入输出样例 #3

输入 #3

1 0 9 0
AC

输出 #3

No

输入输出样例 #4

输入 #4

8 6 9 1
AC
BC
AB
BC
AC
BC
AB
AB

输出 #4

Yes
C
B
B
C
C
B
A
A

说明/提示

限制条件

  • 1N1051 \leq N \leq 10^5
  • 0A,B,C1090 \leq A,B,C \leq 10^9
  • NNAABBCC 均为整数
  • sis_i 仅为 ABACBC 之一

样例解释 1

可以如下完成全部 22 次选择:

  • 11 次选择时,给 AA11,从 BB11。此时 AA 变为 22BB 变为 22
  • 22 次选择时,给 CC11,从 AA11。此时 CC 变为 11AA 变为 11

由 ChatGPT 4.1 翻译