#include <bits/stdc++.h> using namespace std; char a[130][130]; int f(int i,int j,int n,int k) { if(i<0||i>n-1||j<0||j>k-1) { return 0; }else if(a[i][j]=='0') { return 0; }else { a[i][j]='0'; f(i-1,j-1,n,k); f(i-1,j,n,k); f(i-1,j+1,n,k); f(i,j-1,n,k); f(i,j+1,n,k); f(i+1,j-1,n,k); f(i+1,j,n,k); f(i+1,j+1,n,k); return 1; } } int main() { int n,k; while(scanf("%d %d",&n,&k)!=EOF) { if(n==0&&k==0) { break; } int i,j,num=0; for(i=0;i<n;i++) { scanf("%s",a[i]); } for(i=0;i<n;i++) { for(j=0;j<k;j++) { if(a[i][j]=='1') { num=num+f(i,j,n,k); } } } printf("%d\n",num); } return 0; } |
Double click to view unformatted code.