Vasya and Multisets

题意翻译

对于一个可重集 $S$,我们称呼一个数 $x\in S$ 为“好数”仅当 $x$ 在 $S$ 中出现过恰好一次。(比如,在可重集 $\{1, 1, 2, 3, 3, 3, 4\}$ 中 $2$ 和 $4$ 为好数。) 给你一个长 $N$ 代表一个可重集 $S$ 的数列 $T$,求 $S$ 可不可以划分为两个可重集 $A$ 和 $B$ 使得集合 $A$ 中的好数数量和集合 $B$ 中的好数数量相同。 如果可以,则输出 ```YES```,并在下一行输出一行 $N$ 个大写字母 `A` 或者 `B`,第 $i$ 个字母如果为 `A` 则代表 $T_i$ 被划分到集合 $A$ 中,反之则代表 $T _ i$ 被划分到集合 $B$ 中。 如果不可以,则输出 ```NO```。 对于所有的数据 $N\le100, T_i\le 100$。

题目描述

Vasya has a multiset $ s $ consisting of $ n $ integer numbers. Vasya calls some number $ x $ nice if it appears in the multiset exactly once. For example, multiset $ \{1, 1, 2, 3, 3, 3, 4\} $ contains nice numbers $ 2 $ and $ 4 $ . Vasya wants to split multiset $ s $ into two multisets $ a $ and $ b $ (one of which may be empty) in such a way that the quantity of nice numbers in multiset $ a $ would be the same as the quantity of nice numbers in multiset $ b $ .

输入输出格式

输入格式


The first line contains a single integer $ n~(2 \le n \le 100) $ . The second line contains $ n $ integers $ s_1, s_2, \dots s_n~(1 \le s_i \le 100) $ — the multiset $ s $ .

输出格式


If there exists no split of $ s $ to satisfy the given requirements, then print "NO" in the first line. Otherwise print "YES" in the first line. The second line should contain a string, consisting of $ n $ characters. $ i $ -th character should be equal to 'A' if the $ i $ -th element of multiset $ s $ goes to multiset $ a $ and 'B' if if the $ i $ -th element of multiset $ s $ goes to multiset $ b $ . Elements are numbered from $ 1 $ to $ n $ in the order they are given in the input. If there exist multiple solutions, then print any of them.

输入输出样例

输入样例 #1

4
3 5 7 1

输出样例 #1

YES
BABA

输入样例 #2

3
3 5 1

输出样例 #2

NO