多重集合
题目描述
Smart有一个由 \(n\) 个整数组成的多重集合\(S\)(多重集合是指集合中元素可以重复出现)。Smart称一个数 \(x\) 为好数当且仅当 \(x\) 恰好在多重集 \(S\) 中出现一次。例如,多重集合 {\(1,1,2,3,3,3,4\)} 包含的好数有 \(2\) 和 \(4\)。
Smart想将多重集 \(S\) 分为两个多重集 \(a\) 和 \(b\)(其中一个可能为空),使得多重集 \(a\) 中的好数数量与多重集 \(b\) 中的好数数量相等(整数在多重集 \(a\) 中恰好出现一次,在多重集合 \(b\) 中恰好出现一次)。
格式
输入格式
第一行包含一个整数 \(n\)。
第二行包含 \(n\) 个整数\(s_1, s_2,…,s_n\),描述多重集 \(S\)。
输出格式
如果不存在\(S\)的分配方案满足要求,则在第一行中输出"\(\text{NO}\)"。
否则,在第一行中输出"\(\text{YES}\)",第二行应包含由 \(n\) 个字符组成的字符串。如果多集 \(S\) 的第 \(i\) 个元素分配给多重集 \(a\) ,则第 \(i\) 个字符应等于"\(\text{A}\)";如果多重集 \(S\) 的第 \(i\) 个元素进入多重集 \(b\),则第 \(i\) 个字符应等于"\(\text{B}\)"。元素按在输入中给出的顺序从 \(1\) 到 \(n\) 编号。
如果存在多个分配方案,则输出其中任何一个。
样例1
样例输入1
7
1 3 3 3 5 5 5
样例输出1
YES
ABAAAAA
样例2
样例输入2
85
80 40 20 36 40 68 76 67 32 40 72 55 48 34 74 20 20 48 80 0 84 68 12 90 60 64 95 40 0 28 16 68 20 20 86 28 2 26 76 64 46 24 46 68 20 24 88 32 94 44 16 28 92 40 56 76 87 60 60 56 48 42 40 84 28 44 92 0 0 20 32 55 68 52 54 48 2 28 29 99 92 24 10 92 25
样例输出2
YES
AAAAAAABAAAAABAAAAAAAABAAABAAAAAAAAAABAAAAAAAAAABAAAAAAAAAAAABAAAAAAAAAAAABAAAABAAAAB
限制
\(100\%\)的数据:\(2 \le n \le 100, 1 \le s_i \le 100\)。