#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
typedef struct Node
{
int x, y;
}Node;
int main()
{
int m, n, si, sj;
int dir[4][2] = {0, 1, 0, -1, 1, 0, -1, 0};
char g[21][21];
while (cin>>m>>n, m|n)
{
for (int i = 0; i < n; i++)
cin>>g[i];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
if (g[i][j] == '@')
si = i, sj = j;
}
queue<Node> que;
Node p;
p.x = si, p.y = sj;
que.push(p);
int ans = 0;
while (!que.empty())
{
p = que.front();
que.pop();
ans++;
for (int d = 0; d < 4; d++)
{
int cx = p.x+dir[d][0], cy = p.y+dir[d][1];
if (cx>=0 && cy>=0 && cx<n && cy<m && g[cx][cy]=='.')
{
Node e;
e.x = cx, e.y = cy;
que.push(e);
g[cx][cy] = '#';
}
}
}
cout<<ans<<endl;
}
}
poj 1979 Red and Black
最新推荐文章于 2022-10-30 20:09:58 发布