View Code of Problem 62

#include<iostream>
using namespace std;
void Find(char a[200][200],int i,int j){
	a[i][j]=0;
	 if(a[i-1][j-1]=='1') Find(a,i-1,j-1);
    if(a[i-1][j]=='1') Find(a,i-1,j);
    if(a[i][j-1]=='1') Find(a,i,j-1);
    if(a[i+1][j+1]=='1') Find(a,i+1,j+1);
    if(a[i+1][j]=='1') Find(a,i+1,j);
    if(a[i+1][j-1]=='1') Find(a,i+1,j-1);
    if(a[i-1][j+1]=='1') Find(a,i-1,j+1);
    if(a[i][j+1]=='1') Find(a,i,j+1);
}
int main() {
	 int n,m;
	 char a[200][200];
	 while(scanf("%d%d",&n,&m)!=EOF&&n!=0&&m!=0){
	 	int sum=0;
	 	 
	 	for(int i=0;i<n;i++){
	 		for(int j=0;j<m;j++){
	 			 cin>>a[i][j];
			 }
		 }	
		for(int i=0;i<n;i++)
    {
	 for(int j=0;j<m;j++){
	 		if(a[i][j]=='1'){
	 			sum=sum+1;
	 			Find(a,i,j);
			 }
		 } 
	 }
	 cout<<sum<<endl;
	 }
	 return 0;
}

Double click to view unformatted code.


Back to problem 62