#sjtu20141C. 矩阵分组

矩阵分组

时间限制: 1.0 秒

空间限制: 256 MB

题目描述

给定一个 N×MN \times M 的矩阵,矩阵中的元素取值为 0,1,10, 1, -1。 规定矩阵中的两个元素 Ai,jA_{i,j}Ar,cA_{r,c} 属于同一个组别,当且仅当它们满足以下条件:

  1. 它们是相邻的(上下或左右相邻),即 (ir=1 且 j=c)(|i-r|=1 \text{ 且 } j=c)(i=r 且 jc=1)(i=r \text{ 且 } |j-c|=1)
  2. 它们的值相等且不为 0,即 Ai,j=Ar,c0A_{i,j} = A_{r,c} \neq 0

如果是间接相连的(例如 AABB 同组,BBCC 同组),则 A,B,CA, B, C 都属于同一个组别。

请计算矩阵中共有多少个组别。

输入格式

从标准输入读入数据。

第一行包含两个整数 N,MN, M (1N,M10001 \le N, M \le 1000),表示矩阵的行数和列数。

接下来 NN 行,每行包含 MM 个整数,表示矩阵的元素。

输出格式

输出到标准输出。

输出一个整数,表示组别的数量。

3 4
1 0 -1 -1
1 1 0 -1
0 1 0 0
2

样例 1 解释

  • 左边的三个 1 组成一个组别。
  • 右上角的三个 -1 组成另一个组别。
  • 0 不参与分组。

子任务

测试点编号 分数 N,MN, M \le
131 \sim 3 30 100100
4104 \sim 10 70 10001000