View Code of Problem 62

#include<stdio.h>
void group(char a[130][130],int m,int n)
{
	a[m][n]=0;
	if(a[m+1][n]=='1')
	    group(a,m+1,n);
	if(a[m-1][n]=='1')
	    group(a,m-1,n);
	if(a[m][n+1]=='1')
	    group(a,m,n+1);
	if(a[m][n-1]=='1')
	    group(a,m,n-1);
	if(a[m+1][n+1]=='1')
	    group(a,m+1,n+1);
	if(a[m-1][n-1]=='1')
	    group(a,m-1,n-1);
	if(a[m+1][n-1]=='1')
	    group(a,m+1,n-1);
	if(a[m-1][n+1]=='1')
    	group(a,m-1,n+1);
 
}
int main()
{
	int n,k,count; char a[130][130];
	while(scanf("%d %d",&n,&k)!=EOF&&(n!=0||k!=0))
	{
		getchar();
		count=0;
		for(int i=0;i<n;i++)
		{
			scanf("%s",a[i]);
		}
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<k;j++)
			{
				if(a[i][j]=='1')
				{
					group(a,i,j);
					++count;
				}
			}
		}
		printf("%d\n",count);
	}
}

Double click to view unformatted code.


Back to problem 62