#include<stdio.h> char arr[120][120]; int dfs(int i,int j,int m,int n){ if(i>=m||j>=n||i<0||j<0){ return 0; } if(arr[i][j]==0){ return 0; } if(arr[i][j]==1){ arr[i][j]=0; dfs( i, j-1, m, n); dfs( i+1, j, 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); dfs( i+1, j-1, m, n); dfs( i+1, j+1, m, n); } return 0; } int main(){ int n ,m; int i,j; while(~scanf("%d %d",&m,&n)&&n!=0&&m!=0){ getchar(); int count=0; for(i=0;i<m;i++){ for(j=0;j<n;j++){ scanf("%c",&arr[i][j]); arr[i][j]=arr[i][j]-'0'; } getchar(); } for(i=0;i<m;i++){ for(j=0;j<n;j++){ if(arr[i][j]){ count++; dfs(i,j,m,n); } } } printf("%d\n",count); } return 0; } |
Double click to view unformatted code.