POJ 1979

来源:互联网 发布:人道至尊 知乎 编辑:程序博客网 时间:2024/06/08 06:57
#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>#define for0(i,j,k) for(int(i)=(j);(i)<(k);(i)++)#define for1(i,j,k) for(int(i)=(j);(i)<=(k);(i)++)using namespace std;int m,n;int startx,starty;char field[50][50];int ans;int dir[4][2]= {{1,0},{-1,0},{0,1},{0,-1}};void dfs(int x,int y){    for0(i,0,4)    {        int tx,ty;        tx=x+dir[i][0];        ty=y+dir[i][1];        if(tx<0||tx>n-1||ty<0||ty>m-1)continue;        if(field[tx][ty]=='.')        {            field[tx][ty]='#';            ans++;            dfs(tx,ty);        }    }}int main(){    while (scanf("%d%d",&m,&n)!=EOF&&(m&&n))    {        for(int i=0; i<n; i++)        {            for(int j=0; j<m; j++)            {                cin>>field[i][j];                if(field[i][j]=='@')                {                    startx=i;                    starty=j;                }            }        }        ans=1;        field[startx][starty]='#';        dfs(startx,starty);        printf("%d\n",ans);    }    return 0;}
原创粉丝点击