QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 256 MB مجموع النقاط: 100

#1798. 风暴中的尖叫者

الإحصائيات

你可能还记得在学校的头几年里,人类至少在 7000 年前就发明了酿造啤酒。从那时起,啤酒的总消耗量一定是巨大的,而且可以肯定的是,在未来的几千年里,消耗率也不会下降。

为了庆祝这些事实,我们邀请你实现一个看似与酿造啤酒无关的游戏。然而,很有可能在成功实现后,你会感到有点头晕,就像你喝的啤酒超过了每日限额一样……

游戏在一个由不同类型的方块组成的 $M \times N$ 矩形网格上进行。

动物与食物

网格上有一定数量的动物,每只动物占据一个方块。 草会生长,羊吃草,狼吃羊,狼和羊都可能因饥饿而死亡。

回合与动物行为

每一回合按以下顺序执行动作:

  1. 网格上的所有动物移动。每只狼向东(向右)移动到相邻的方块。如果狼无法移动,则狼移动到其所在行的最西端方块。每只羊向南(向下)移动到相邻的方块。如果羊无法移动,则羊移动到其所在列的最北端方块。
  2. 如果狼和羊占据同一个方块,狼会吃掉羊,该方块变为“带有尸体的土壤”(Soil with carcass)方块。
  3. 如果羊位于“带有草的土壤”(Soil with grass)方块上,羊会吃掉草,该方块变为“土壤”(Soil)方块。
  4. 如果狼在包括当前回合在内的最后 10 个回合中没有进食,它就会死亡,该方块变为“带有尸体的土壤”方块。
  5. 如果羊在包括当前回合在内的最后 5 个回合中没有进食,它就会死亡,该方块变为“带有尸体的土壤”方块。

方块类型及其变化

共有三种类型的方块。方块的类型可能会在游戏过程中发生变化。

  1. 土壤(Soil)方块:在游戏开始后的 3 个回合后,或者在方块变为土壤方块后的 3 个回合后,该方块变为“带有草的土壤”方块。
  2. 带有草的土壤(Soil with grass)方块:如果草被羊吃掉,该方块立即变为土壤方块。草会在 3 个回合后再次在该方块上生长。
  3. 带有尸体的土壤(Soil with carcass)方块:每当有动物在任何类型的方块上死亡时,该方块立即变为“带有尸体的土壤”方块。动物仍然可以移动到这个方块,但草永远不会再在这个方块上生长。随着游戏的进行,更多的尸体可能会堆积在该方块上。

输入格式

输入的第一行包含三个整数 $T, N$ 和 $M$ ($1 \le T \le 100, 1 \le M, N \le 20$),其中 $T$ 是回合数,$M$ 是行数,$N$ 是网格的列数。 接下来的 $M$ 行每行包含 $N$ 个字符。字符表示方块的类型:

  • .(点字符)表示土壤方块
  • S 表示带有羊的土壤方块
  • W 表示带有狼的土壤方块

输出格式

输出 $M$ 行,每行包含 $N$ 个字符,描述第 $T$ 回合结束后的网格状态。如果方块上有动物,输出:

  • W 表示该方块上有狼
  • S 表示该方块上有羊

否则,输出:

  • * 表示带有尸体的土壤方块
  • # 表示带有草的土壤方块
  • .(点字符)表示土壤方块

样例

输入 1

6 6 5
..S..
.....
.S...
.....
....W
.S...

输出 1

##S##
#####
#####
#.###
W*.##
#S.##

输入 2

14 3 3
S..
W..
...

输出 2

.##
#*#
S##

输入 3

2 3 1
S
.
.

输出 3

.
.
S

输入 4

3 3 1
S
.
.

输出 4

S
#
#

输入 5

4 3 1
S
.
.

输出 5

#
S
#

输入 6

5 3 1
S
.
.

输出 6

#
.
S

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.