时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
丁真想教你下电子围棋,因为他觉得传统围棋不够聪明:“都什么年代了还在下传统围棋。”
由于丁真喜欢说:“6”,所以电子围棋的规则是:所有由1组成的闭合圈内的0都将变成6。
可是丁真分不清0和1,对于目前的棋局,丁真想让你告诉他将会有几个6。
在数字 0组成的方阵中,可能有若干个任意形状的闭合圈,闭合圈由数字 1 构成 。现要求若把闭合圈内的所有0都填写成 6后,输出6的数量。
注意:方阵内不保证一定有闭合圈。
例如:8 x 8的方阵(n=8),涂色前和涂色后的方阵如下:
输入描述:
每组测试数据第一行一个整数 n。1≤n≤50。
接下来 n行,由 0 和 1 组成的 n×n 的方阵。
输出描述:
输出包含 1 行,一个整数x,表示将会有的6的个数。
示例1
输入
复制
8
0 0 0 0 0 0 0 0
0 1 1 1 1 1 0 0
0 1 0 0 0 1 1 0
0 1 0 0 0 0 1 0
0 1 0 0 0 1 1 0
0 1 0 0 0 1 0 0
0 1 1 1 1 1 0 0
0 0 0 0 0 0 0 0
示例2
输入
复制
5
0 0 1 0 0
0 1 0 1 0
0 0 1 0 0
0 0 1 1 1
0 0 1 0 0
示例3
输入
复制
4
0 0 0 1
1 1 0 0
1 0 0 1
1 0 0 0
备注:
1≤n≤50,1≤x≤2500。