Cubo de Palabras
Una cubo de palabras es un tipo especial de crucigrama. Al construir una cubo de palabras, comienzas eligiendo un número entero positivo : la longitud del lado del cubo. Luego, construyes un cubo grande que consta de \(a×a×a\) cubos de una unidad. Este cubo grande tiene aristas. Luego, descartas todos los cubos de una unidad que no tocan los bordes del cubo grande. La siguiente figura muestra el cubo que obtendrás para :
Finalmente, asignas una letra a cada uno de los cubos de una unidad del cubo grande. Debes colocar una palabra significativa en cada borde del cubo grande. Cada borde se puede leer en cualquier dirección y es suficiente si una de las dos direcciones de lectura proporciona una palabra significativa.
La siguiente figura muestra el cubo para en el que algunos cubos de una unidad ya tienen letras asignadas. Ya puedes leer las palabras 'SUBMIT', 'ACCEPT' y 'TURING' a lo largo de tres bordes del cubo grande.
Dada una lista de palabras válidas. Cada palabra de la lista de palabras puede aparecer en cualquier cantidad arbitraria de un cubo de palabras válido. Calcule la cantidad de cubos de palabras diferentes que se pueden construir, módulo ..
Si una cubo de palabras se puede obtener de a partir de otra mediante rotación o reflexión, se consideran distintas.
Subtareas
- Subtarea 1 (21 puntos): las palabras constan únicamente de las letras
'a'
-'f'
(minúsculas) - Subtarea 2 (29 puntos): las palabras constan únicamente de las letras
'a'
-'p'
(minúsculas) - Subtarea 3 (34 puntos): las palabras constan de las letras
'a'
-'p'
(minúsculas) y'A'
-'P'
(mayúsculas) - Subtarea 4 (16 puntos): las palabras constan de letras
'a' - 'z'
(minúsculas),'A'
-'Z'
(mayúsculas) y dígitos'0'
-'9'
Entrada
La primera línea contiene un único número entero (): el número de palabras.
Las siguientes líneas contiene una palabra que puede aparecer en los bordes del cubo grande. La longitud de cada palabra está entre y , inclusive.
Se garantiza que todas las palabras son diferentes.
Salida
Imprime un único número entero, el número de cubo de palabras distintos para la lista dada de palabras válidas módulo .
Ejemplos
Entrada 1
1
radar
Salida 1
1
La única posibilidad es que la palabra "radar"
esté en cada borde del cubo.
Entrada 2
1
robot
Salida 2
2
Hay dos cubos, que son solo rotaciones entre sí: la palabra "robot"
está en cada borde, y la diferencia entre los dos cubos es si la esquina frontal inferior izquierda contiene 'r'
o 't'
.
Entrada 3
2
FLOW
WOLF
Salida 3
2
Entrada 4
2
baobab
bob
Salida 4
4097
Entrada 5
3
TURING
SUBMIT
ACCEPT
Salida 5
162
Entrada 6
3
MAN1LA
MAN6OS
AN4NAS
Salida 6
114
Comments