240905 - 泡泡龙

题目描述

在一个 N×N 方块构成的棋盘中,每个方块均涂上红、黄、蓝、绿(记为 1、2、3、4)中的一种颜色。游戏者可以在最底行任意找一个方块,用鼠标双击这个方块,于是该方块及与之相邻(即在上、下、左、右四个方向上有公共边)的所有的同色方块均被消掉,而因下方失去支持的方块将会自由落下填补空位。

给出一个 4×4 的棋盘样例,当游戏者双击最底层左边第二个方块后,将会形成右边的布局。

你的任务是编写一个泡泡龙模拟程序,对于给定的一个初始棋盘,计算游戏者双击最底层某个方块后棋盘的布局将会如何。

输入
  • 第一行包含两个正整数 NM(1 < M < N < 100),其中 N 表示棋盘的规模,M 则表示游戏者将双击最底层从左边数起的第 M 个方块。
  • 接下来的 N 行,每行包含 N 个1至4的整数,表示一个初始的棋盘。同一行相邻两个数之间用一个空格隔开。
输出
  • 输出包含 N 行,每行描述游戏结束后棋盘的布局。
  • 棋盘上的每个方块由一个整数表示,其中1至4的整数分别代表红、黄、蓝、绿四种颜色。
  • 没有方块的格子用 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
来源

OiClass周赛

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 186
通过人数 129
金币数量 5 枚
难度 提高


上一题 下一题