#include <stdio.h> void group(int arr[][130],int i,int j) { arr[i][j] = 0; int m,n; for(m = i - 1;m <= i + 1;m++) { for(n = j - 1; n <= j + 1;n++) { if(arr[m][n] == 1) group(arr,m,n); } } } int main(void) { int m,n,i,j,arr[130][130] = {0}; char s[120]; while(scanf("%d%d",&m,&n) != EOF && m != 0 && n != 0) { int index = 0; for(i = 1;i <= m;i++) { scanf("%s",&s); for(j = 1;j <= n;j++) { arr[i][j] = s[j - 1] - '0' + 0; } } for(i = 1;i <= m;i++) { for(j = 1;j <= n;j++) { if(arr[i][j] == 1) { group(arr,i,j); index++; } } } printf("%d\n",index); } return 0; } |
Double click to view unformatted code.