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