101665: [AtCoder]ABC166 F - Three Variables Game
Description
Score : $600$ points
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
, orBC
.
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.
Sample Input 1
2 1 3 0 AB AC
Sample 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$.
Sample Input 2
3 1 0 0 AB BC AB
Sample Output 2
No
Sample Input 3
1 0 9 0 AC
Sample Output 3
No
Sample Input 4
8 6 9 1 AC BC AB BC AC BC AB AB
Sample Output 4
Yes C B B C C B A A