题目描述
D: XORANDORBAN
Problem Statement
You are given a positive integer N. Your task is to determine a set S of 2^N integers satisfying the following conditions:
- All the integers in S are at least 0 and less than 2^{N+1}.
- All the integers in S are distinct.
- You are also given three integers X, A, and O, where $0 \leq X, A, O < 2^{N+1}.$ Then, any two integers (a, b) in S must satisfy $a {\it$ $b \neq X, a {\it$ and$} b \neq A, a {\it$ or$} b \neq O$, where ${\it$ ${\it$ and$}, {\it$ or} are bitwise xor, bitwise and, bitwise or, respectively. Note that a and b are not necessarily different.
Input
N X A O
Constraints
- $1 \leq N \leq 13$
- $0 \leq X, A, O < 2^{N+1}$
- Inputs consist only of integers.
Output
If there is no set satisfying the conditions mentioned in the problem statement, output No in a line. Otherwise, output Yes in the first line, and then output 2^N integers in such a set in the second line. If there are multiple sets satisfying the conditions, you can output any of them.
Sample Input 1
2 6 1 5
Output for Sample Input 1
Yes
0 3 4 7
Sample Input 2
3 0 5 1
Output for Sample Input 2
No
Sample Input 3
3 4 2 5
Output for Sample Input 3
Yes
1 0 6 15 8 9 14 7
Example
Input
2 6 1 5
Output
Yes
0 3 4 7
输入格式
见题面
输出格式
见题面
样例输入
2 6 1 5
样例输出
Yes
0 3 4 7