Nave intergaláctica
Se le da una secuencia de
números enteros
.
Además, un conjunto de
actualizaciones. Cada actualización está definida por tres números
y
. Una actualización consiste en la operación
con el número
aplicada a todos los números en el segmento
de la secuencia
. Formalmente, para cada
se realiza la siguiente sustitución:
Para un conjunto de actualizaciones , definamos
como la suma de
sobre todos los segmentos posibles de la secuencia
después de aplicar todas las actualizaciones del conjunto
a la secuencia dada:
donde se define como la suma de los elementos del segmento
:
Su tarea consiste en hallar la suma de todos los subconjuntos del conjunto dado de actualizaciones
. Formalmente, si
es el conjunto de todos los subconjuntos del conjunto
de
actualizaciones, tiene que encontrar lo siguiente:
El XOR bit a bit de enteros no negativos
y
,
, se define de la siguiente manera:
Cuando
se escribe en base dos, el dígito en el lugar de
![]()
es
si exactamente uno de los dígitos en ese lugar de
y
es
, y
en el caso contrario. Por ejemplo, tenemos
(en base dos:
). Generalmente, el XOR bit a bit de
enteros no negativos
se define como
. Podemos demostrar que este valor no depende del orden de
. Esta operación se hace mediante el símbolo
^
en muchos lenguajes de programación.
Subtareas
- Subtarea 1 (4 puntos):
, para todo
.
- Subtarea 2 (5 puntos):
, para todo
.
- Subtarea 3 (6 puntos):
, para todo
, se garantiza que la longitud de todos los segmentos de actualización es igual a
.
- Subtarea 4 (9 puntos):
, para todo
, se garantiza que todos los segmentos de actualización no se cruzan por pares.
- Subtarea 5 (8 puntos):
, para todo
.
- Subtarea 6 (11 puntos):
, para todo
.
- Subtarea 7 (19 puntos):
, para todo
.
- Subtarea 8 (30 puntos):
, para todo
.
- Subtarea 9 (8 puntos): Sin restricciones adicionales.
Entrada
La primera línea de entrada contiene un único número entero
el número de elementos de la secuencia.
La segunda línea contiene números enteros separados por espacios
para cada
la secuencia dada.
La tercera línea contiene un único entero
el número de actualizaciones.
Cada una de las siguientes líneas contiene tres números enteros separados por espacios
y
descripciones de las actualizaciones.
Salida
Imprima un entero único: la respuesta al problema. Si es muy grande, imprímala módulo .
Ejemplos
Entrada 1
2
1 3
1
1 2 2
Salida 1
52
Hay secuencias posibles después de aplicar las actualizaciones
cuando se aplica la única operación dada
y cuando no. En ambas secuencias las sumas resultantes son iguales a
.
Entrada 2
5
1 2 3 4 5
0
Salida 2
1001
El conjunto está vacío, el conjunto de todos los subconjuntos consta de un único elemento
el conjunto vacío, es decir, no hay actualizaciones y se debe encontrar
para la secuencia dada
.
Comments