#P4328. [COCI2006-2007#1] Slikar

[COCI2006-2007#1] Slikar

题目描述

The evil emperor Cactus has in his possession the Magic Keg and has flooded the Enchanted Forest! The Painter and the three little hedgehogs now have to return to the Beaver's den where they will be safe from the water as quickly as possible! The map of the Enchanted Forest consists of R rows and C columns. Empty fields are represented by '.' characters, flooded fields by '*' and rocks by 'X'. Additionally, the Beaver's den is represented by 'D' and the Painter and the three little hedgehogs are shown as 'S'. Every minute the Painter and the three little hedgehogs can move to 4 neighbouring fields (up, down, left or right). Every minute the flood expands as well so that all empty fields that have at least one common side with a flooded field become flooded as well. Neither water nor the Painter and the three little hedgehogs can pass through rocks. Naturally, the Painter and the three little hedgehogs cannot pass through flooded fields, and water cannot flood the Beaver's den. Write a program that will, given a map of the Enchanted Forest, output the shortest time needed for the Painter and the three little hedgehogs to safely reach the Beaver's den. Note: The Painter and the three little hedgehogs cannot move into a field that is about to be flooded (in the same minute).

输入格式

The first line of input will contain two integers, R and C, smaller than or equal to 50. The following R lines will each contain C characters ('.', '*', 'X', 'D' or 'S'). The map will contain exactly one 'D' character and exactly one 'S' character.

输出格式

Output the shortest possible time needed for the Painter and the three little hedgehogs to safely reach the Beaver's den. If this is impossible output the word “KAKTUS” on a line by itself.

题目大意

给你一个RCR*C 的矩阵,这个矩阵由 * , .. (点) , DD , SS , XX 组成,会有洪水从* 处涌出,每单位时间都会淹没和其四联通的平地,.. (点)表示平地,XX 是障碍,不可通行,也不会没淹没,SS 是出发点,三只刺猬(?)从这里出发前往庇护所,它们只能在没有被洪水淹没的平地上移动,并且每单位时间只能移动到周围一个四联通的格子,DD 表示庇护所,庇护所不会被洪水淹没。

输入第一行两个整数R,CR,CR,C50R,C\leq 50 ),接下来使这个矩阵。

输出到达庇护所的最短时间,或者输出“KAKTUS”,表示根本不可能到。

感谢@Khassar 提供的翻译

3 3
D.*
...
.S.
3
3 3
D.*
...
..S
KAKTUS
3 6
D...*.
.X.X..
....S.
6

提示

Clarification of the second sample test: The best they can do is to go along the lower border and then the left border, and get flooded one minute before reaching the den.