问题4412--拓展格子【ZWY的扫雷系列 I】4412: 拓展格子【ZWY的扫雷系列 I】
时间限制: 1 Sec 内存限制: 512 MB
提交: 0 解决: 0
[提交] [状态] [讨论版] [命题人:]题目描述
扫雷是一个有名且有趣的电脑小游戏。如果你没玩过或不会玩,也没有关系,不影响你做这道题。
现在,我们规定一个N行M列的布尔型矩阵叫做“地图”。矩阵中每一个格子如果是1,表示这个格子里有雷;反之,如果是0,则表示这个格子里没有雷。
如果一个格子里没有雷,并且其周围8个格子里都没有雷,那么打开这8个格子——我们称这个动作叫“拓展”。我们继续按照同样的规则,尝试拓展其周围把8个格子,如果可以就拓展,然后访问每个能够拓展的格子的周围8个格子……直到不能再拓展格子为止。
特别地,如果一个格子A在地图角落里,那么它周围有3个格子,只要这4个格子都是0就可以打开这4个格子,称为拓展A;如果A在边上,那么它周围有5个格子,只要这6个格子都是0就可以打开这6个格子,称为拓展A。
现在,给出一张N行M列的地图,每一个格子开始都没有被打开。再给出一个处在第X行第Y列的格子,并尝试拓展它。请输出最终每个格子有没有被打开、一共打开了几个格子。
输入
第一行输入四个自然数:N,M,X,Y;
然后输入一张地图:第2~N+1行,每行有M个布尔型数“0”或“1”,每个数之间有一个空格。
数据范围见后面
输出
先是一个N行M列的矩阵,由“0”和“1”构成,每个数之间有一个空格。第N行M个值为“0”或“1”,分别表示第N行M列的格子“没被打开”或“被打开了”。
然后是一个非负整数,表示最终一共打开了几个格子。
样例输入
(1)
4 5 2 3
0 0 0 0 1
0 0 0 0 0
0 0 0 0 0
0 0 1 1 1
(2)
4 5 3 3
1 1 1 1 1
1 1 1 0 1
1 1 0 1 1
1 1 1 1 1
样例输出
(1)
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 0 0 0
14
(2)
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0
来源/分类
[提交] [状态]