#1122. 炸弹人的回忆
炸弹人的回忆
描述
大家还记得经典的炸弹人游戏吗?这是方块鸟鹦鹉班的项目分析课程里的其中一个项目,下图就是炸弹人游戏的截图:
炸弹人的地图里有三种不同的地块,分别是空地、砖墙和水泥墙,炸弹人和敌人都能在空地上移动,但无法穿过砖墙和水泥墙。
炸弹人只能在空地上通过放置定时炸弹来攻击敌人,炸弹会在三秒后爆炸,爆炸时会在炸弹相邻的上、下、左、右四个格子产生冲击波,冲击波能消灭敌人,也会对炸弹人造成致命伤害。而最重要的是,炸弹的冲击波能击碎砖墙,这样就能打开地图的更多区域了!
游戏中有一种道具,可以提升炸弹的等级,每提升一级,上、下、左、右四个方向的冲击波的长度都会增加一个格子,但无论怎么升级,冲击波都无法破水泥墙,但可以摧毁砖墙。不过,上、下、左、右某个方向的冲击波在破坏了一堵砖墙以后,就会耗尽所有能力,无法再向该方向传播了。
如,在下图中,炸弹等级为2
爆炸效果如下:
现在需要给出你当前的游戏地图,注明每个格子的类型( 空地、砖墙、水泥墙 )、炸弹等级和炸弹的位置,需要你在地图上画出炸弹爆炸后的冲击波的格子,并将应该摧毁的砖墙变成空地标注出来。
输入输出格式
输入
第一行为两个以空格分割的正整数, ,表示地图有几行几列; ( )
第二行为一个正整数,表示当前炸弹的等级; ( )
随后行,每行为个正整数,为该格子的类型,其中:
- 0为空地
- 1为砖墙
- 2为水泥墙
- 3为炸弹
输出
行,每行个以空格分割的数字,表示炸弹爆炸后地图上每个格子的类型,其中:
- 0为空地
- 1为砖墙
- 2为水泥墙
- 3为炸弹
- 4为冲击波
样例
5 5
2
0 0 0 0 0
0 0 1 0 0
0 2 3 0 1
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 2 4 4 0
0 0 4 0 0
0 0 4 0 0
样例1说明
- 在炸弹原地生成冲击波
- 往上的方向,冲击波被1行2列的砖墙挡下,该格砖墙被摧毁;
- 往右的方向,冲击波覆盖了2行3列的空地,被2行4列的砖墙挡下,2行4列的砖墙被摧毁;
- 往下的方向,冲击波覆盖了3行2列、4行2列的空地;
- 往左的方向,冲击波被2行1列的水泥墙挡住;