CF948A.Protect Sheep

传统题 时间 2000 ms 内存 256 MiB 4 尝试 1 已通过 1 标签

Protect Sheep

题目描述

题目背景:(有少许简化和修改,但依然符合题意)

Bob是个农夫,他有一个RCR*C 的草地。

草地上有许多羊,同时也有许多狼。

羊不会动,但是狼会向上下左右四个方向动。

所以Bob打算在草地上放上狗,使狼和羊完全隔开。

你的任务就是输出一种可行方案, 放的狗的数量不必最少。

输入格式

第一行两个数RR (1<=R<=500)(1<=R<=500)CC (1<=C<=500)(1<=C<=500)

接下来RR 行,每行一个长度为C的字符串。来表示这片草地上的东西。

其中'.'是空地,'W'是狼,'S'是羊。

输出格式

第一行输出YesYesNoNo,表示是否可行。

如果可行YesYes 接下来输出RR行,每行一个长度为CC的字符串。 来表示放完狗之后的情况。 狗只能放到空地上,用'D'表示。

感谢@cn:苏卿念 提供的翻译

样例

6 6
..S...
..S.W.
.S....
..W...
...W..
......
Yes
..SD..
..SDW.
.SD...
.DW...
DD.W..
......
1 2
SW
No
5 5
.S...
...S.
S....
...S.
.S...
Yes
.S...
...S.
S.D..
...S.
.S...

在线编程 IDE

建议全屏模式获得最佳体验