!‘El maligno emperador Cactus ha conseguido la jarra mágica y ha inundado el bosque encantado! El Pintor y los tres puercoespines tienen que regresar a la guarida del Castor donde estarán a salvo del agua.
El mapa el Bosque Encantado consiste en
filas y
columnas. Los campos vacíos se representan con ’.’, los
campos inundados con ’*’, y las rocas con ’X’.
Adicionalmente, la guarida del Castor con ’D’ y el Pintor y
los tres puercoespines con ’S’.
Cada minuto el Pintor y los tres puercoespines pueden moverse a uno de los cuatro campos vecinos (arriba, abajo, izquierda o derecha). Pero la inundación también se expande: cualquier campo que sea contiguo con al menos un campo inundado, se inunda en el minuto siguiente. Ni el agua, ni el Pintor con sus puercoespines pueden cruzar las rocas. El Pintor y los puercoespines no pueden cruzar los campos inundados, ni moverse a un campo que está a punto de ser inundado. Por otra banda, el agua no puede inundar la guarida del Castor.
Escribe un programa que, dado un mapa del Bosque Encantado, retorne la mínima cantidad de tiempo necesario para que el Pintor y los tres puercoespines puedan llegar a la guarida del Castor.
La primera línea contiene dos enteros,
y
,
menores o iguales a 50. Las siguientes
líneas contienen
caracteres ’.’, ’*’, ’X’,
’D’, ’S’. El mapa contendrá exactamente un
único caracter ’D’ y un único caracter
’S’.
Escribe una línea con la mínima cantidad de tiempo que necesitan el
Pintor y los tres puercoespines para llegar a la guarida del Castor. Si
esto no es posible, escribe una línea con la palabra
KAKTUS.
Input
10 11 D.......... ........... ........... ........... ........... ........... ........S.. ........... ........... ...........
Output
14
Input
10 15 ........X...... ..XXXXX.X.*.... X.....X.X..*... .X.S..X.X...... D.X...X.XXXXX.. .X....X........ .X....X.XXXXXXX .XXXXXX.X...... ........X...... XXXXXXXXX...*..
Output
KAKTUS
Input
10 15 ........X...... ..XXXXX.X.*.... X.....X.X..*... .X.S..X.X...... D.X...X.XXXXXXX .X....X........ .X....X.XXXXXXX .XXXXXX.X...... ........X...... XXXXXXXXX...*..
Output
30