#include <iostream>
using namespace std;
#define MAXN 102
char Map[ MAXN ][ MAXN ];
int m, n;
void search(int i, int j)
{
Map[ i ][ j ] = '*';
if(Map[ i + 1 ][ j ] == '@')
{
search(i + 1, j);
}
if(Map[ i - 1 ][ j ] == '@')
{
search(i - 1, j);
}
if(Map[ i ][ j + 1 ] == '@')
{
search(i, j + 1);
}
if(Map[ i ][ j - 1 ] == '@')
{
search(i, j - 1);
}
if(Map[ i - 1 ][ j - 1 ] == '@')
{
search(i - 1, j - 1);
}
if(Map[ i - 1 ][ j + 1 ] == '@')
{
search(i - 1, j + 1);
}
if(Map[ i + 1 ][ j - 1 ] == '@')
{
search(i + 1, j - 1);
}
if(Map[ i + 1 ][ j + 1 ] == '@')
{
search(i + 1, j + 1);
}
}
int main()
{
while(scanf("%d %d", &m, &n))
{
if(m == 0 && n == 0)
{
break;
}
for(int i = 1; i <= m; i ++)
{
for(int j = 1; j <= n; j ++)
{
cin>>Map[ i ][ j ];
}
}
int counter = 0;
for(int i = 1; i <= m; i ++)
{
for(int j = 1; j <= n; j ++)
{
if(Map[ i ][ j ] == '@')
{
search(i, j);
counter ++;
}
}
}
printf("%d\n", counter);
}
return 0;
}
杭电ACM1241(搜索题)
最新推荐文章于 2019-03-23 11:24:48 发布