CF1051C.Vasya and Multisets
普及/提高-
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
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 quantity of numbers to appear exactly once in multiset a and the quantity of numbers to appear exactly once in multiset b).
瓦西娅有一个由 n 个整数组成的多重集 s。瓦西娅称某个数 x 是“优美的”,如果它在该多重集中恰好出现一次。例如,多重集 {1,1,2,3,3,3,4} 中的优美数为 2 和 4。
瓦西娅希望将多重集 s 拆分为两个多重集 a 和 b(其中某一个可以为空),使得多重集 a 中优美数的个数等于多重集 b 中优美数的个数(即:在 a 中恰好出现一次的数的个数,等于在 b 中恰好出现一次的数的个数)。
输入格式
The first line contains a single integer n (2≤n≤100).
The second line contains n integers s1,s2,…sn (1≤si≤100) — the multiset s.
第一行包含一个整数 n (2≤n≤100)。
第二行包含 n 个整数 s1,s2,…sn (1≤si≤100) —— 多重集 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.
如果不存在满足给定要求的 s 的划分,则在第一行输出 "NO"。
否则,在第一行输出 "YES"。
第二行应包含一个由 n 个字符组成的字符串。其中第 i 个字符应为 'A',表示多重集 s 的第 i 个元素被分配到多重集 a;或为 'B',表示该元素被分配到多重集 b。元素按输入中给出的顺序从 1 到 n 编号。
若存在多个解,输出任意一个即可。
输入输出样例
输入#1
4 3 5 7 1
输出#1
YES BABA
输入#2
3 3 5 1
输出#2
NO
输入解题思路,AI测评打分。不知道怎么写?