CF468B.Two Sets
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Little X has n distinct integers: p1,p2,...,pn . He wants to divide all of them into two sets A and B . The following two conditions must be satisfied:
- If number x belongs to set A , then number a−x must also belong to set A .
- If number x belongs to set B , then number b−x must also belong to set B .
Help Little X divide the numbers into two sets or determine that it's impossible.
输入格式
The first line contains three space-separated integers n,a,b (1<=n<=105; 1<=a,b<=109) . The next line contains n space-separated distinct integers p1,p2,...,pn (1<=pi<=109) .
输出格式
If there is a way to divide the numbers into two sets, then print "YES" in the first line. Then print n integers: b1,b2,...,bn ( bi equals either 0 , or 1 ), describing the division. If bi equals to 0 , then pi belongs to set A , otherwise it belongs to set B .
If it's impossible, print "NO" (without the quotes).
输入输出样例
输入#1
4 5 9 2 3 4 5
输出#1
YES 0 0 1 1
输入#2
3 3 4 1 2 4
输出#2
NO
说明/提示
It's OK if all the numbers are in the same set, and the other one is empty.