3868 - Color Fall

题目描述

在一个名为 “Color Fall” 的小游戏中,屏幕上显示一个由多种颜色的方块组成的矩形游戏界面。

该矩形游戏界面有 N 行和 10 列,每个格子里可能包含一个颜色方块(用数字字符 1\dots 9 表示),也可能为空白(用数字字符 0 表示,表示该位置没有颜色方块)。

在某个时刻,玩家不操作界面,游戏界面中的方块,将按照如下顺序产生 “自动消除” 和 “方块掉落” 的两个动作。

方块消除

游戏自动判断,矩形界面中是否存在方块数量 \ge K 的同色的方块群。

如果两个方块在水平方向或垂直方向上相邻,并且颜色相同,它们就属于同一片同色方块群。如果当前方块群中方块数量 \ge K ,所有这些方块都同时会消失,变成空白。

方块掉落

当满足条件的方块群同时完成方块消除动作之后,剩余的颜色方块,会因重力作用向下“掉落”,下方没有方块的空白位置会被颜色方块填充,所以任何颜色方块的下方一定不会是空白

当然,如果方块消除动作完成后,所有颜色方块下方都不存在空白位置,则不会产生方块掉落的动作。

当方块掉落动作完成之后,游戏会继续判断是否满足“方块消除”的条件,这一过程会一直持续,直到屏幕上的矩形游戏界面中,无法进行方块消除时,游戏结束。

给定一块屏幕中显示的矩形游戏界面的初始状态,输出这些过程发生之后屏幕中矩形游戏界面的最终状态。

输入

输入的第一行包含 NK

以下 N 行,每行输入 10 个数字字符,给出了游戏屏幕的初始状态。

输出

输出 N 行,描述游戏屏幕的最终状态。

样例

输入

6 3
0000000000
0000000300
0054000300
1054502230
2211122220
1111111223

输出

0000000000
0000000000
0000000000
0000000000
1054000000
2254500000

输入

12 2
5367633723
3551643232
4241624215
6761211156
4447343155
4734232617
2131126744
5261165372
7213114444
1525235331
4173633747
4525634375

输出

0000000000
0000000000
0000000000
0000000000
0000000003
0000000002
5000000005
3004000006
4063000007
6345000031
7173000747
1525260375

输入

15 4
0000000000
5000000000
5200600305
4407220205
5663472417
2344725142
6116436163
2235625436
3647522254
4345331546
6742447444
3374342454
1162627553
1757136345
4436423211

输出

0000000000
5000000000
5200600000
4407200000
5663400005
2344722005
6116475007
2235626302
3647535203
4345331416
6742447144
3374342166
1162627433
1757136345
4436423211
说明

样例 1 解释

在样例 1 中,K=3。那么存在大小至少为 K 的颜色为 1 的方块群,同样有一个颜色 2 的方块群。当它们同时被消除之后,屏幕暂时成为了这样:

0000000000
0000000300
0054000300
1054500030
2200000000
0000000003

然后,由于重力效果,方块下落形成这样的布局:

0000000000
0000000000
0000000000
0000000000
1054000300
2254500333

再一次地,出现了一个大小至少为 K 地方块群(颜色为 3)。这个区域消除后,无法产生方块掉落的动作,因此得到最终的屏幕状态:

0000000000
0000000000
0000000000
0000000000
1054000000
2254500000

数据规模

对于 20\% 的数据,满足屏幕上的方块群只能进行 1 次方块消除的动作。

对于 30\% 的数据,满足 1 \le N \le 301 \le K \le 5

对于 100\% 的数据,满足 1 \le N \le 1001\le K \le 10 \times N

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 2 枚
难度 基础


上一题 下一题