#include <stdio.h> using namespace std; char arr[125][125]; int dfs( int i,int j, int m, int n){ if( i>m || j>n || i<1 || j<1){ return 0; } if( arr[i][j] == 0 ) return 0; if( arr[i][j] == 1 ){ arr[i][j] = 0; dfs(i-1,j,m,n); dfs(i-1,j+1,m,n); dfs(i-1,j-1,m,n); dfs(i,j+1,m,n); dfs(i,j-1,m,n); dfs(i+1,j,m,n); dfs(i+1,j+1,m,n); dfs(i+1,j-1,m,n); } return 0; } int main(){ int n,m; int sum; while( ~scanf("%d%d", &m, &n ) ){ sum = 0; if( n==0 && m==0 ){ break; } for( int i=1; i<=m; i++ ){ for( int j=1; j<=n; j++ ){ scanf(" %c", &arr[i][j]); arr[i][j] = arr[i][j] - '0'; } } for( int i=1; i<=m; i++ ){ for( int j=1; j<=n; j++ ){ if( arr[i][j] == 1 ){ dfs(i,j,m,n); sum ++; } } } printf("%d\n", sum ); } return 0; } |
Double click to view unformatted code.