View Code of Problem 62

#include<stdio.h>
int main()
{
	char a[121][121];
	int i,j;
	int n,m;
	while(scanf("%d%d",&n,&m),n!=0||m!=0)
	{
		getchar();
		for(i=0;i<n;i++)
		{
			for(j=0;j<m;j++)
				scanf("%c",&a[i][j]);
			getchar();
		}
	    int sum=0; 
        for(i=0;i<n;i++)
			for(j=0;j<m;j++)
			{
				
				if(a[i][j]=='1')
				{
					if(a[i+1][j]=='2'&&(i+1<n))
						a[i][j]='2';
					else if(a[i][j+1]=='2'&&(j+1<m))
						a[i][j]='2';
					else if(a[i+1][j+1]=='2'&&(i+1<n)&&(j+1<m))
				        a[i][j]='2';
	                else if(a[i-1][j+1]=='2'&&(i>0)&&(j+1<m))
                        a[i][j]='2';
					else if(a[i-1][j]=='2'&&(i>0))
					    a[i][j]='2';
					else if(a[i][j-1]=='2'&&(j>0))
				        a[i][j]='2';
				    else if(a[i+1][j-1]=='2'&&(j>0)&&(i+1<n))
					    a[i][j]='2';
					else if(a[i-1][j-1]=='2'&&(i>0)&&(j>0))
					    a[i][j]='2';
					else {sum++;a[i][j]='2';}


					if(a[i+1][j]=='1'&&(i+1<n))
						a[i+1][j]='2';
					if(a[i][j+1]=='1'&&(j+1<m))
						a[i][j+1]='2';
					if(a[i+1][j+1]=='1'&&(i+1<n)&&(j+1<m))
				        a[i+1][j+1]='2';
	                if(a[i-1][j+1]=='1'&&(i>0)&&(j+1<m))
                        a[i-1][j+1]='2';
					if(a[i-1][j]=='1'&&(i>0))
					    a[i-1][j]='2';
					if(a[i][j-1]=='1'&&(j>0))
				        a[i][j-1]='2';
				    if(a[i+1][j-1]=='1'&&(j>0)&&(i+1<n))
					    a[i+1][j-1]='2';
					if(a[i-1][j-1]=='1'&&(i>0)&&(j>0))
					    a[i-1][j-1]='2';
					 
					
				}
				else if(a[i][j]=='2')
				{
						if(a[i+1][j]=='1'&&(i+1<n))
						a[i+1][j]='2';
					if(a[i][j+1]=='1'&&(j+1<m))
						a[i][j+1]='2';
					if(a[i+1][j+1]=='1'&&(i+1<n)&&(j+1<m))
				        a[i+1][j+1]='2';
	                if(a[i-1][j+1]=='1'&&(i>0)&&(j+1<m))
                        a[i-1][j+1]='2';
					if(a[i-1][j]=='1'&&(i>0))
					    a[i-1][j]='2';
					if(a[i][j-1]=='1'&&(j>0))
				        a[i][j-1]='2';
				    if(a[i+1][j-1]=='1'&&(j>0)&&(i+1<n))
					    a[i+1][j-1]='2';
					if(a[i-1][j-1]=='1'&&(i>0)&&(j>0))
					    a[i-1][j-1]='2';
				}
			}
			printf("%d\n",sum);
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 62