View Code of Problem 62

#include <iostream>

using namespace std;
char  arr[100][100];

void sheepNum(int x,int y){

    arr[x][y]='2';
    if(arr[x-1][y-1]=='1')sheepNum(x-1,y-1);
    if(arr[x-1][y]=='1')sheepNum(x-1,y);
    if(arr[x-1][y+1]=='1')sheepNum(x-1,y+1);
    if(arr[x][y-1]=='1')sheepNum(x,y-1);
    if(arr[x][y+1]=='1')sheepNum(x,y+1);
    if(arr[x+1][y-1]=='1')sheepNum(x+1,y-1);
    if(arr[x+1][y]=='1')sheepNum(x+1,y);
    if(arr[x+1][y+1]=='1')sheepNum(x+1,y+1);

}

int main(){
    int m,n;
    while(scanf("%d %d",&m,&n)!=EOF){
        if(m==0&&n==0)break;
        
        
      

        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                cin>>arr[i][j];
            }
        }
int count=0;
        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                if(arr[i][j]=='1'){count ++;
                sheepNum(i,j);}
            }
        }

        cout<<count<<endl;

        // for(int i=0;i<m;i++){
        //     for(int j=0;j<n;j++){
        //         cout<<arr[i][j];
        // }
        // }
        



    }



    return 0;
}

Double click to view unformatted code.


Back to problem 62