题目描述
这是一个简化版的网络游戏:在一个 n × n 方块构成的棋盘中,每个方块均涂上红、黄、蓝、绿(记为 1、2、3、4)中的一种颜色。
游戏者可以在最底行任意找一个方块,用鼠标双击这个方块。这个方块及与它通过上、下、左、右四个方向相邻连接的所有同色方块都会被消掉。因下方失去支持的方块将自由落下,填补空位。
样例给出了一个 4 × 4 的棋盘。游戏者双击最底层左边第二个方块后,棋盘变成样例输出所示的布局。
你的任务是编写一个泡泡龙模拟程序:对于给定的初始棋盘,计算游戏者双击最底层某个方块后棋盘的布局。
每个方块只沿原列下落,不会横向移动;同一列中剩余方块的上下相对顺序保持不变。本题只进行这一次消除及下落,下落后不再自动触发新的消除。
输入格式
第一行输入两个正整数 n 和 m。n 表示棋盘的规模,m 表示游戏者双击最底层从左边数起的第 m 个方块。
接下来 n 行,每行 n 个整数,表示初始棋盘,按从上到下、从左到右的顺序给出。每个整数为 1 至 4,相邻整数用空格分隔。
输出格式
输出 n 行,每行 n 个整数,表示游戏结束后棋盘的布局。没有方块的格子用 0 表示,同一行相邻两个整数用空格分隔。
4 2
1 2 3 4
4 2 4 4
3 4 4 3
1 4 4 3
1 0 0 0
4 0 0 0
3 2 0 3
1 2 3 3
输入样例 #2
1 1
1
输出样例 #2
0
输入样例 #3
2 2
1 3
3 1
输出样例 #3
1 0
3 3
数据范围与约定
1 ≤ m ≤ n ≤ 100,初始棋盘中的颜色编号为 1、2、3 或 4。