#include <stdio.h>
#include <stdlib.h>
int W, H, res;
char a[21][21];
int dfs(int i, int j)
{
if(i>=0&&i<H&&j>=0&&j<W&&(a[i][j]=='.'||a[i][j]=='@'))
{
a[i][j]='1';
res++;
dfs(i+1,j);
dfs(i,j+1);
dfs(i,j-1);
dfs(i-1,j);
}
if(i>=0&&i<H&&j>=0&&j<W&&a[i][j]=='#')
{
return res;
}
return res;
}
int main()
{
int i, j, p, q;
while(scanf("%d%d",&W,&H))
{
res=0;
if(W==0&&H==0)break;
for(i=0;i<H;i++)
scanf("%s",a[i]);
for(i=0;i<H;i++)
for(j=0;j<W;j++)
if(a[i][j]=='@')
{
p=i;
q=j;
}
printf("%d\n",dfs(p,q));
}
return 0;
}
简单题,四个方向搜一下。
poj 1979
最新推荐文章于 2021-04-29 16:16:51 发布