View Code of Problem 62

// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
using namespace std;
void dfs(char a[120][120], int n, int m) {
	a[n][m] = 0;
	if (a[n + 1][m] == '1') dfs(a, n + 1, m);
	if (a[n -1 ][m] == '1') dfs(a, n - 1, m);
	if (a[n + 1][m-1] == '1') dfs(a, n + 1, m-1);
	if (a[n - 1][m-1] == '1') dfs(a, n - 1, m-1);
	if (a[n + 1][m + 1] == '1') dfs(a, n + 1, m + 1);
	if (a[n - 1][m + 1] == '1') dfs(a, n - 1, m + 1);
	if (a[n ][m-1] == '1') dfs(a, n , m-1);
	if (a[n ][m+1] == '1') dfs(a, n, m+1);
}
int main()
{
	int n,m;
	char a[120][120];
	int cot = 0;
	while (cin >> n>>m) {
		if (n == 0 & m == 0) {
			break;
		}
		int cot = 0;
		for (int i = 0; i < n; i++) {
				cin >> a[i];
			
		}
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				if (a[i][j] == '1') {
					dfs(a, i, j);
					cot++;
				}
			}
		}
		cout << cot << endl;
	}
}

Double click to view unformatted code.


Back to problem 62