题目描述:
存在一个m*n的二维数组,其成员取值范围为0,1,2。其中值为1的元素具备同化特性,每经过1S,将上下左右值为0的元素同化为1。而值为2的元素,免疫同化。将数组所有成员随机初始化为0或2,再将矩阵的[0,0]元素修改成1,在经过足够长的时间后,求矩阵中有多少个元素是0或2(即0和2数量之和)。
输入描述:
输入的前两个数字是矩阵大小。后面的数字是矩阵内容。
输出描述:
返回矩阵中非1的元素个数
补充说明:
m和n不会超过30(含30)。
示例1
输入:
4 4 0 0 0 0 0 2 2 2 0 2 0 0 0 2 0 0输出:
9说明:输入数字前两个数字是矩阵大小。后面的是数字是矩阵内容。
这个矩阵的内容如下:
{
0,0,0,0
0,2,2,2
0,2,0,0
0,2,0,0
}起始位置 (0,0)被修改为1后,最终只能同化矩阵为:
{
1,1,1,1
1,2,2,2
1,2,0,0
1,2,0,0
}所以矩阵中非1的元素个数为9。
m, n = map(int, input().split())
matrix = []
for _ in range(m):
matrix.append(list(map(i