HX1218AC. 泡泡龙

提交2 通过2
通过率100%
时间限制1000ms
内存限制128MiB

题目描述

这是一个简化版的网络游戏:在一个 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。