Missing Xor


Enviar solución

Puntos: 100
Límite de tiempo: 1.0s
Límite de memoria: 256M

Tipo de problema
Lenguajes permitidos
C, C++, Java, Python

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

No hay comentarios por el momento.