View Code of Problem 62

#include <iostream>
#include <cmath>
using namespace std;
int f(int a[][122],int i,int j){
	a[i][j]=0;
	if(a[i+1][j]){
		f(a,i+1,j);
	}
	if(a[i-1][j]){
		f(a,i-1,j);
	}
	
	if(a[i][j+1]){
		f(a,i,j+1);
	}
	
	if(a[i][j-1]){
		f(a,i,j-1);
	}
	
	if(a[i+1][j+1]){
		f(a,i+1,j+1);
	}
	
	if(a[i-1][j-1]){
		f(a,i-1,j-1);
	}
	
	if(a[i+1][j-1]){
		f(a,i+1,j-1);
	}
	
	if(a[i-1][j+1]){
		f(a,i-1,j+1);
	}
}
int main(){	
	int m,n;
	while(cin>>m>>n){
		if(m==0&&n==0){
			return 0;
		}
		int sum=0;
		int a[122][122]={0};
		string temp; 
		for(int i=1;i<=m;i++){
			cin>>temp;
			for(int j=1;j<=n;j++)
			a[i][j]=temp[j-1]-'0';
				
		}	
		
		for(int i=1;i<=m;i++)
			for(int j=1;j<=n;j++){
				if(a[i][j]==1){
					sum+=1;
					f(a,i,j);
				}
			}
		cout<<sum<<endl;	
	}
} 

Double click to view unformatted code.


Back to problem 62