Missing Xor
Mariano está aprendiendo una nueva operación binaria: el XOR bit a bit (\(\oplus\)). Esta operación compara las representaciones binarias de dos valores y devuelve 1 solo en las posiciones donde los bits son distintos, y 0 donde son iguales. En lenguajes como C++ o Python, se realiza usando el operador \(\texttt{^}\).
Para practicar, Mariano escribió \(N\) enteros \(A_1, A_2, \dots, A_N\) en su cuaderno. Ahora quiere agregar exactamente un número \(K\) a su cuaderno de forma que el XOR de todos los números, incluyendo \(K\), sea exactamente \(X\). ¿Existe tal número \(K\)?
Formalmente, Mariano busca un \(K\) que cumpla: \[ K \oplus A_1 \oplus A_2 \oplus \dots \oplus A_N = X \]
Entrada
La primera línea contiene un único entero \(N\) (\(1 \leq N \leq 2 \cdot 10^5\)), la cantidad de enteros que Mariano escribió en su cuaderno.
La segunda línea contiene \(N\) enteros \(A_1, A_2, \dots, A_N\) (\(1 \leq A_i \leq 10^9\)), los números del cuaderno de Mariano.
La tercera línea contiene un único entero \(X\) (\(1 \leq X \leq 2 \cdot 10^9\)), el valor que Mariano quiere obtener.
Salida
Si no existe ningún número \(K\) que cumpla la condición, se debe imprimir una única línea con la palabra \(\texttt{NO}\).
En el caso de que sí exista, se debe imprimir \(\texttt{SI}\) en la primera línea y, en la siguiente línea, el valor de dicho \(K\).
Ejemplo
Entrada 1
3
1 2 2
4
Salida 1
SI
5
Entrada 2
2
1 1
100
Salida 2
SI
100
Comentarios