#abc166f. [abc166_f]Three Variables Game

[abc166_f]Three Variables Game

题目描述

有一个游戏涉及到三个变量,分别记作 AABBCC

随着游戏的进行,会有 NN 个事件,你需要作出选择。每个选择由一个字符串 sis_i 表示。如果 sis_iAB,你需要给 AABB11,然后给另一个减 11;如果 sis_iAC,你需要给 AACC11,然后给另一个减 11;如果 sis_iBC,你需要给 BBCC11,然后给另一个减 11

在进行每次选择后,AABBCC 都不能为负数。

确定是否可以在这种条件下进行 NN 次选择。如果可以,请给出一种这样的选择方式。

约束条件

  • 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

输入

输入以以下格式从标准输入给出:

NN AA BB CC s1s_1 s2s_2 :: sNs_N

输出

如果可以在这种条件下进行 NN 次选择,请输出 Yes;否则,请输出 No

此外,在前一种情况下,显示一种进行选择的方式,随后的 NN 行中,第 (i+1)(i+1) 行应包含在第 ii 次选择中加 11 的变量的名称(ABC)。

示例输入1

2 1 3 0
AB
AC

示例输出1

Yes
A
C

你可以成功地进行两次选择,如下所示:

  • 在第一次选择中,将 11 加到 AA,将 11BB 减去。AA 变为 22BB 变为 22
  • 在第二次选择中,将 11 加到 CC,将 11AA 减去。CC 变为 11AA 变为 11

示例输入2

3 1 0 0
AB
BC
AB

示例输出2

No

示例输入3

1 0 9 0
AC

示例输出3

No

示例输入4

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

示例输出4

Yes
C
B
B
C
C
B
A
A