View Code of Problem 62

#include<iostream>
using namespace std;

void f(char a[122][122],int i,int j){
a[i][j]='0';
if(a[i+1][j-1]=='1')f(a,i+1,j-1);
if(a[i+1][j]=='1')f(a,i,j);
if(a[i+1][j+1]=='1')f(a,i+1,j+1);
if(a[i][j-1]=='1')f(a,i,j-1);
if(a[i][j+1]=='1')f(a,i,j+1);
if(a[i-1][j-1]=='1')f(a,i-1,j-1);
if(a[i-1][j]=='1')f(a,i-1,j);
if(a[i-1][j+1]=='1')f(a,i-1,j+1);
}
int main(){
int n,m;
while(cin>>n>>m&&n&&m){
char a[122][122];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
int sum=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(a[i][j]=='1'){
f(a,i,j);
sum++;
}
cout<<sum<<endl;
}
return 0;
}

Double click to view unformatted code.


Back to problem 62