zoj 2165 Red and Black

来源:互联网 发布:淘宝卖家怎样添加客服 编辑:程序博客网 时间:2024/05/16 16:23

//简单题,深搜或宽搜都可以。

#include<cstdio>#define MAX 21int w,h;int count;int grid[MAX][MAX];int dir[4][2]={ 0,1, 1,0, 0,-1, -1,0};void dfs(int x,int y){    count++;   grid[x][y]='#';   int i,xx,yy;   for(i=0; i<4; i++)   {       xx=x+dir[i][0],yy=y+dir[i][1];       if(xx<0||yy<0||xx>=h||yy>=w) continue;       if(grid[xx][yy]=='.')         dfs(xx,yy);   }}int main(){    int i,j;    int sx,sy;  while(scanf("%d %d",&w,&h)){    getchar();    if(w==0&&h==0)        break;        count=0;    for(i=0; i<h; i++)     {      for(j=0; j<w; j++)      {          scanf("%c",&grid[i][j]);       if(grid[i][j]=='@') {sx=i,sy=j;}      }      getchar();     }       dfs(sx,sy);       printf("%d\n",count);  }   return 0;}