Maze tac toe.


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
C, C#, C++, Java, Pascal, Python, VB

Bessie la vaca disfruta resolver laberintos. A ella también le gusta jugar ta-te-ti (la versión vacuna del ta-te-ti, descrita a continuación). El Granjero Juan ha encontrado una nueva manera de que ella juegue ambos juegos al mismo tiempo.

Primero, el ta-te-ti vacuno: en vez de jugarse con X's y O's en un tablero 3×3, las vacas juegan por supuesto con M's y O's en un tablero 3×3. Durante un turno, uno puede poner o una 'M' o una 'O' en cualquier celda desocupada (esta es otra difrencia del ta-te-ti estándar, donde un jugador siempre juega 'X' y el otro siempre juega 'O'). El ganador del ta-te-ti vacuno es el primer jugador en deletrear 'MOO', de manera horizontal, vertical, o diagonal. En reversa está bien, entonces por ejemplo un jugador podra ganar deletreando 'OOM' a lo largo de una fila del tablero. Igual que en el ta-te-ti estandar posible llegar a un estado en el tablero donde no hay ganador. Un movimiento en el ta-te-ti se especifica usualmente por 3 carcteres, o 'Mij' o 'Oij', donde i y j están cada uno en el rango 1…3 y especifican la fila y la columan en la cual colocar la correspondiente 'M' u 'O'.

Para desafiar a Bessie, el Granjero Juan ha diseñado un laberinto cuadrado consistente de una cuadrícula de \(N×N\) celdas (3 \leq N \leq 25). Algunas celdas, incluyendo todal las de borde, contienen grandes fardos de heno, previniendo que Bessie se mueva en esa celda. Bessie puede moverse libremente en las cuatro direcciones usuales norte, sur, este y oeste. Algunas celdas contienen un pedazo de papel en el cual esta escrita una jugada de ta-te-ti vacuno. Mientras Bessie se mueve alrededor en el laberinto, cualquiera vez en que ella entra a una de esas celdas, ella debe hacer la jugada correspondiente en un tablero de ta-te-ti que se esta jugando de manera simultanea mientras ella se desplaza en el laberinto (al menos que la celda correspondiente en el ta-te-it ya esta ocupada, en ese caso no hace nada). Ella no tiene oponente en este juego de ta-te-ti vacuno, pero algunas celdas en el laberinto pueden oponerse a su objetivo de deletrear eventualmente 'MOO'.

Si Bessie deja de jugar al ta-te-ti inmediatamente después de ganar, por favor determinar el número de configuraciones distintas de tablero de ta-te-ti ganadoras puede generarse moviéndose adecuadamente a través del laberinto.

Entrada

La primera línea de la entrada contine N.

El laberinto está especificado en las siguientes N líneas, cada una conteniendo 3*N caracteres. Cada celda descrita por un bloque de 3 caracteres, los cuales son \('###'\) para una pared, '...' para un espacio vaci­o, 'BBB' para una celda no pared conteniendo a Bessie, y una jugada de ta-te-ti vacuno para una celda no pared que fuerze a Bessie a hacer la jugada correspondiente. Exactamente una celda sera 'BBB'.

Salida

Por favor imprima el número de distintas configuraciones ganadores de tableros ta-te-ti (posiblemente 0) que Bessie puede generar movimientos en el tablero, parando después de ganar.

Ejemplo de Entrada

7
#####################
###O11###...###M13###
###......O22......###
###...######M22######
###BBB###M31###M11###
###...O32...M33O31###
#####################

Ejemplo de Salida

8

Explicación

En este ejemplo, hay 8 configuraciones de tableros ganadores que Bessie puede alcanzar. Ellas son:

O.M
.O.
MOM

O..
.O.
.OM

O.M
.O.
.OM

O..
.O.
MOM

O..
...
OOM

..M
.O.
OOM

...
.O.
OOM

...
...
OOM

Para explicar uno de esos, tome este caso:

O..
...
OOM

Aqui­, Bessie podria visitar primero la celda O11, luego moverse al corredor inferior visitando O32, M33, y O31. El juego entonces se detiene, desde que ella ha gando (entonces por ejemplo ella no podra visitar la celda M11 norte a su posición actual o la celda O31).


Comments

There are no comments at the moment.