题目ID:9809必做题100分
最新提交:
Accepted
100 分
历史最高:
Accepted
100 分
时间限制: 1000ms
空间限制: 524288kB
给定一个n*m的二进制矩阵,请你数一数矩阵中完全被0上下左右包围的1的数目。
第一行两个整数n和m(3<=n,m<=100)
接下来n行,每行m个0或1的整数。
输出一个整数代表结果
4 4
1 0 1 1
0 1 0 0
1 0 1 0
0 0 0 1
2
样例解释:
样例中有两个1是完全被0包围的。
#include
#include
using namespace std;
int main()
{
int n, m;
cin >> n >> m; // 4 4
int cnt = 0;
int a[105][105];
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
cin >> a[i][j];
}
}
//
for (int i = 2; i <= n - 1; i++)
{
for (int j = 2; j <= m - 1; j++)
{
if (a[i][j] == 1 && a[i - 1][j] == 0 && a[i + 1][j] == 0 && a[i][j - 1] == 0 && a[i][j + 1] == 0)
{
cnt++;
}
}
}
cout << cnt << endl;
return 0;
}