CF468B Two Sets

题目描述

> 给出 $n$ 个各不相同的数字,将它们分别放入 $A$ 和 $B$ 两个集合中,使它们满足: > * 若数字 $x$ 在集合 $A$ 中,那么数字 $a-x$ 也在集合 $A$ 中; > * 若数字 $x$ 在集合 $B$ 中,那么数字 $b-x$ 也在集合 $B$ 中。

输入格式

> > 输入的第一行输入三个整数 $n,a,b (1 \leq n \leq 10^{5} ; 1 \leq a,b \leq 10^{9} )$。 > > 输入的第二行有 $n$ 个各不相同的正整数,且每个正整数的数值大小都在 $[1,10^{9}]$ 内。

输出格式

> > 若不能能将这 $n$ 个数在满足条件的情况下全部放入 $A$ 和 $B$ 这两个集合中,则输出 `NO` 。 > > 若这 $n$ 个数在满足条件的情况下能被全部放入 $A$ 和 $B$ 这两个集合中,则第一行输出 `YES` ,第二行输出 $n$ 个数 $0$ 或 $1$ ,第 $i$ 个数为 $0$ 表示第 $i$ 个数在集合 $A$ 中,第 $i$ 个数为 $1$ 表示第 $i$ 个数在集合 $B$ 中。

说明/提示

It's OK if all the numbers are in the same set, and the other one is empty.