#include<iostream> using namespace std; void Find(char a[200][200],int i,int j){ a[i][j]=0; if(a[i-1][j-1]=='1') Find(a,i-1,j-1); if(a[i-1][j]=='1') Find(a,i-1,j); if(a[i][j-1]=='1') Find(a,i,j-1); if(a[i+1][j+1]=='1') Find(a,i+1,j+1); if(a[i+1][j]=='1') Find(a,i+1,j); if(a[i+1][j-1]=='1') Find(a,i+1,j-1); if(a[i-1][j+1]=='1') Find(a,i-1,j+1); if(a[i][j+1]=='1') Find(a,i,j+1); } int main() { int n,m; char a[200][200]; while(scanf("%d%d",&n,&m)!=EOF&&n!=0&&m!=0){ int sum=0; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>a[i][j]; } } for(int i=0;i<n;i++) { for(int j=0;j<m;j++){ if(a[i][j]=='1'){ sum=sum+1; Find(a,i,j); } } } cout<<sum<<endl; } return 0; } |
Double click to view unformatted code.