Consultas XOR de Rango

Tienes un arreglo de n elementos y q consultas. Existen dos tipos de consultas:
  1. Obtener el XOR (OR exclusivo) de un rango específico
  1. Actualizar el arreglo en la posición indicada
Tu objetivo es procesar estas consultas de manera eficiente.

Entrada

La primera línea de la entrada contiene dos enteros n y q (1 ≤ n, q ≤ 100 000), que representan la cantidad de elementos en el arreglo y el número de consultas, respectivamente.
La segunda línea contiene n números separados por espacios (), que son los valores iniciales del arreglo.
Las siguientes q líneas describen cada consulta de la siguiente forma:
  1. Para las consultas de XOR de rango: la línea comienza con el número 1, seguido de dos enteros y (). Esos valores representan el rango de índices [$$l_i, r_i$$] sobre el cual se necesita calcular el valor XOR.
  1. Para las consultas de actualización: la línea inicia con el número 2, seguido de dos enteros y (). Aquí, indica la posición del elemento que se va a cambiar y es su nuevo valor.

Salida

Para cada consulta de tipo XOR de rango, imprime en una línea independiente el resultado del XOR de todos los elementos dentro de ese rango.

Ejemplos

Entrada
Salida
6 4 1 4 2 7 5 3 1 1 3 2 2 9 1 2 5 1 3 6
7 9 3

Constraints

Time limit: 0.6 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue