/ WHOJ / 题库 /

多重集合

多重集合

题目描述

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\)。

信息

ID
1478
难度
7
分类
贪心 点击显示
标签
递交数
2
已通过
1
通过率
50%
上传者

相关

在下列训练计划中:

YGP模拟赛