#ABC166F. Three Variables Game

Three Variables Game

题目描述

There is a game that involves three variables, denoted AA, BB, and CC.

As the game progresses, there will be NN events where you are asked to make a choice. Each of these choices is represented by a string sis_i. If sis_i is AB, you must add 11 to AA or BB then subtract 11 from the other; if sis_i is AC, you must add 11 to AA or CC then subtract 11 from the other; if sis_i is BC, you must add 11 to BB or CC then subtract 11 from the other.

After each choice, none of AA, BB, and CC should be negative.

Determine whether it is possible to make NN choices under this condition. If it is possible, also give one such way to make the choices.

有一个博弈涉及三个变量,分别为 AABBCC

随着游戏的进行,会有 NN 个事件要求你做出选择。每个选择都由 sis_i 字符串表示。如果 sis_i 是 "AB",则必须在 AABB 中加上 11 ,然后从另一个中减去 11 ;如果 sis_i 是 "AC",则必须在 AACC 中加上 11 ,然后从另一个中减去 11 ;如果 sis_i 是 "BC",则必须在 BBCC 中加上 11 ,然后从另一个中减去 11

每次选择后, AABBCC 都不能是负数。

判断在此条件下是否可能做出 NN 个选择。如果可能,也给出一种这样的选择方法。

输入格式

输入内容按以下格式标准输入:

NN AA BB CC
s1s_1
s2s_2
::
sNs_N

输出格式

如果可以根据条件做出 NN 个选择,则打印 ;否则,打印

此外,如果是前一种情况,请在随后的 NN 行中说明一种做出选择的方法。在 (i+1)(i+1) -行中应该包含变量的名称(ABC),在 ii -行的选择项中添加 11

样例 #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
  • N,A,B,CN, A, B, C 是整数。
  • sis_iABACBC

样例 11 解释

您可以成功做出以下两种选择:

  • 在第一个选项中,将 11 加上 AA ,并从 BB 中减去 11AA 变为 22BB 变为 22
  • 在第二个选择中,将 11 加到 CC ,并从 AA 中减去 11CC 变为 11AA 变为 11