View Code of Problem 62

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
void fun(char a[200][200], int i, int j){
	a[i][j] = '0';
	if(a[i+1][j]=='1') fun(a, i+1, j);
	if(a[i+1][j-1]=='1') fun(a, i+1, j-1);
	if(a[i+1][j+1]=='1') fun(a, i+1, j+1);
	if(a[i][j+1]=='1') fun(a, i, j+1);
	if(a[i][j-1]=='1') fun(a, i, j-1);
	if(a[i-1][j]=='1') fun(a, i-1, j);
	if(a[i-1][j+1]=='1') fun(a, i-1, j+1);
	if(a[i-1][j-1]=='1') fun(a, i-1, j-1);
}
int main (){
	int n, m;
	while(cin >> n >> m && (n && m)){
		char s[200][200];
		for(int i = 0;i < n;i++){
			for(int j = 0;j < m;j++){
				cin >> s[i][j];
			}
		}
		int cnt = 0;
		for(int i = 0;i < n;i++){
			for(int j = 0;j < m;j++){
				if(s[i][j]=='1'){
					fun(s, i, j);
					cnt++;
				}
			}
		}
		cout << cnt << endl;
	} 

	return 0;
}

Double click to view unformatted code.


Back to problem 62