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 xor} b \neq X, a {\it and} b \neq A, a {\it or} b \neq O, where {\it xor}, {\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