POJ 1979 DFS

时间:2023-03-09 04:28:18
POJ 1979  DFS

题目链接:http://poj.org/problem?id=1979

#include<cstring>
#include<iostream>
using namespace std;
int n=,h=,sum=;
char aa[][]; void DFS(int p,int q)
{
if(aa[p][q]=='.'&&p>=&&p<h&&q>=&&q<n)
{
sum++;
aa[p][q]='#';
}
else return ;
DFS(p-,q);
DFS(p+,q);
DFS(p,q-);
DFS(p,q+);
}
int main()
{ while(cin>>n>>h)
{ if(n==||h==)break;
int p=,q=;
sum=;
memset(aa,,sizeof(aa));
for(int i=;i<h;i++)
for(int j=;j<n;j++)
{ cin>>aa[i][j]; }
for(int i=;i<h;i++)
for(int j=;j<n;j++)
{
if(aa[i][j]=='@')
{
p=i;q=j;
aa[i][j]='.';
} }
DFS(p,q);
cout<<sum<<endl;
} return sum;
}