1 #include2 #include 3 #define MAXN 105 4 using namespace std; 5 6 char _m[MAXN][MAXN]; 7 bool mark[MAXN][MAXN]; 8 int r; 9 int c;10 void is_connect(int i,int j);11 int main()12 {13 //freopen("acm.acm","r",stdin);14 int i;15 int j;16 int num = 0;17 cin>>r>>c;18 for(i = 0; i < r; ++ i)19 {20 for(j = 0; j < c; ++ j)21 {22 cin>>_m[i][j];23 }24 }25 26 //for(i = 0; i < r; ++ i)27 //{28 // for(j = 0; j < c; ++ j)29 // cout<<_m[i][j];30 // cout< 0 && !mark[i-1][j] && _m[i-1][j] == 'W')53 {54 mark[i-1][j] = true;55 is_connect(i-1,j); 56 }57 if(i < r-1 && !mark[i+1][j] && _m[i+1][j] == 'W')58 {59 mark[i+1][j] = true;60 is_connect(i+1,j);61 }62 if(j > 0 && !mark[i][j-1] && _m[i][j-1] == 'W')63 {64 mark[i][j-1] = true;65 is_connect(i,j-1);66 }67 if(j < c-1 && !mark[i][j+1] && _m[i][j+1] == 'W')68 {69 mark[i][j+1] = true;70 is_connect(i,j+1);71 }72 if(i > 0 && j > 0 && !mark[i-1][j-1] && _m[i-1][j-1] == 'W')73 {74 mark[i-1][j-1] = true;75 is_connect(i-1,j-1);76 }77 if(i > 0 && j < c-1 && !mark[i-1][j+1] && _m[i-1][j+1] == 'W')78 {79 mark[i-1][j+1] = true;80 is_connect(i-1,j+1);81 }82 if(i < r-1 && j > 0 && !mark[i+1][j-1] && _m[i+1][j-1] == 'W')83 {84 mark[i+1][j-1] = true;85 is_connect(i+1,j-1);86 }87 if(i < r-1 && j < c-1 && !mark[i+1][j+1] && _m[i+1][j+1] == 'W')88 {89 mark[i+1][j+1] = true;90 is_connect(i+1,j+1);91 }92 }