AtCoder Beginner Contest 166
F
Three Variables Game
AtCoder
⌀ 1668
原题
← E→
翻译中…

Problem Statement

翻译中…

There is a game that involves three variables, denoted $A$, $B$, and $C$.

翻译中…

As the game progresses, there will be $N$ events where you are asked to make a choice. Each of these choices is represented by a string $s_i$. If $s_i$ is AB, you must add $1$ to $A$ or $B$ then subtract $1$ from the other; if $s_i$ is AC, you must add $1$ to $A$ or $C$ then subtract $1$ from the other; if $s_i$ is BC, you must add $1$ to $B$ or $C$ then subtract $1$ from the other.

翻译中…

After each choice, none of $A$, $B$, and $C$ should be negative.

翻译中…

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

翻译中…

Constraints

翻译中…
  • $1 \leq N \leq 10^5$
  • $0 \leq A,B,C \leq 10^9$
  • $N, A, B, C$ are integers.
  • $s_i$ is AB, AC, or BC.
翻译中…

Input

翻译中…

Input is given from Standard Input in the following format:

翻译中…

N A B C
s_1
s_2
:
s_N

翻译中…

Output

翻译中…

If it is possible to make $N$ choices under the condition, print Yes; otherwise, print No.

翻译中…

Also, in the former case, show one such way to make the choices in the subsequent $N$ lines. The $(i+1)$-th line should contain the name of the variable (A, B, or C) to which you add $1$ in the $i$-th choice.

翻译中…

样例

Input #1
2 1 3 0
AB
AC
Output #1
Yes
A
C
You can successfully make two choices, as follows: - In the first choice, add $1$ to $A$ and subtract $1$ from $B$. $A$ becomes $2$, and $B$ becomes $2$. - In the second choice, add $1$ to $C$ and subtract $1$ from $A$. $C$ becomes $1$, and $A$ becomes $1$.
Input #2
3 1 0 0
AB
BC
AB
Output #2
No
Input #3
1 0 9 0
AC
Output #3
No
Input #4
8 6 9 1
AC
BC
AB
BC
AC
BC
AB
AB
Output #4
Yes
C
B
B
C
C
B
A
A
题目信息
题号
abc166_f
时间限制
2 s
内存限制
1024 MB

题面与样例版权归 AtCoder 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。