CF1051C Vasya and Multisets
题目描述
Vasya 有一个包含 $n$ 个整数的多重集 $s$。Vasya 称某个数字 $x$ 为“好数”,如果它在多重集中恰好出现一次。例如,多重集 $\{1, 1, 2, 3, 3, 3, 4\}$ 中,“好数”是 $2$ 和 $4$。
Vasya 想要将多重集 $s$ 拆分成两个多重集 $a$ 和 $b$(其中一个可以为空),使得多重集 $a$ 中“好数”的数量与多重集 $b$ 中“好数”的数量相等。
输入格式
第一行包含一个整数 $n~(2 \le n \le 100)$。
第二行包含 $n$ 个整数 $s_1, s_2, \dots, s_n~(1 \le s_i \le 100)$,表示多重集 $s$。
输出格式
如果不存在满足条件的拆分方式,第一行输出 “NO”。
否则,第一行输出 “YES”。
第二行输出一个长度为 $n$ 的字符串,第 $i$ 个字符为 'A' 表示多重集 $s$ 的第 $i$ 个元素分到多重集 $a$,为 'B' 表示分到多重集 $b$。元素按照输入顺序编号,从 $1$ 到 $n$。
如果有多种方案,输出任意一种均可。
说明/提示
由 ChatGPT 4.1 翻译