oj red and black

#include<stdio.h>
#include<string.h>
char a[30][30];
int d(int h,int l,int n,int m)
{
 if(h<0||l<0||h>n-1||l>m-1)
  return 0;
 else if(a[h][l]=='#')
  return 0;
 else if(a[h][l]=='.')
 {
  a[h][l]='#';
   return 1+d(h,l-1,n,m)+d(h,l+1,n,m)+d(h-1,l,n,m)+d(h+1,l,n,m);
 }
}
int main()
{
 int m,n,h,l,i,j;
 while(scanf("%d%d",&m,&n)!=EOF)
 {
  if(m==0)
   break;
  memset(a,0,sizeof(a));
  for(i=0;i<n;++i)
            scanf("%s",a[i]);
  for(i=0;i<n;++i)
            for(j=0;j<m;++j)
                if(a[i][j]=='@')
                {
                    a[i][j]='.';
                    printf("%d\n",d(i,j,n,m));
                    break;
                }
 }
 return 0;
}

posted @ 2012-04-26 19:59  逝者*恋世  阅读(172)  评论(0编辑  收藏  举报