Un gusano se desplaza por un tablero , manteniendo la dirección y sentido de su movimiento mientras le sea posible. El gusano no puede salirse del tablero, ni pasar por encima de ningún obstáculo, ni pasar por una casilla por la que ya había pasado anteriormente. En esos casos, el gusano gira la dirección de su marcha 90 grados a la derecha. Si, incluso girando esos 90 grados, el gusano no pudiera avanzar, se detiene.
Implementar un programa que escriba las casillas por las que ha pasado el gusano antes de detenerse. El gusano empieza en la posición central del tablero, moviéndose hacia arriba.
La entrada consiste en la descripción de un tablero. La
primera línea contiene el número de filas
y el número de columnas
.
Tanto
como
son números impares mayores que 2. Siguen
líneas con
caracteres cada una. Un ’.’ indica una posición por la que
se puede pasar. Un ’*’ indica un obstáculo. La posición
central siempre está libre.
Escribir el tablero con una ’G’ en cada posición
por la que ha pasado el gusano.
Input
9 19 ................... ................*.. .........*......... .............*...*. ................... ................... ....*........*..... ..................* ...................
Output
GGGGGGGGGGGGGGGGGGG G.............GG*.G G........*....GG..G G........GGGG*GG.*G G........G..G.GG..G G...........G.GG..G G...*.......G*GGGGG G...........G.....* GGGGGGGGGGGGG......
Input
3 3 .*. ... ...
Output
G*. GGG GGG
Input
3 3 .*. ..* ...
Output
.*. .G* ...