include [HTML_REMOVED]
include [HTML_REMOVED]
include [HTML_REMOVED]
include [HTML_REMOVED]
include [HTML_REMOVED]
define x first
define y second
using namespace std;
typedef pair < int, int > PII;
const int N = 30;
char g [N][N];
int dx[4] = {0, 1, 0, -1}, dy[4] = {-1, 0, 1, 0};
bool st [N][N];
int n, m;
int bfs(int x, int y)
{
int cnt = 1;
queue [HTML_REMOVED] q;
q.push({x, y});
while(q.size())
{
PII t = q.front();
q.pop();
int a = t.x, b = t.y;
for (int i = 0; i < 4; i )
{
int a1 = a + dx[i], b1 = b + dy[i];
if (a1 < 0 || a1 >= n || b1 < 0 || b1 >= m) continue;
if (st [a1][b1]) continue;
if (g [a1][b1] != ‘.’) continue;
st [a1][b1] = true;
q.push({a1, b1});
cnt;
}
}
return cnt;
}
int main()
{
while(cin >> m >> n, n || m)
{
memset(st, 0, sizeof(st));
for (int i = 0; i < n; i )
for (int j = 0; j < m; j )
cin >> g [i][j];
int a, b, flag = 0;
for (int i = 0; i < n; i )
{
for (int j = 0; j < m; j )
{
if (g [i][j] == ‘@’)
{
a = i;
b = j;
flag = 1;
}
}
if (flag == 1) break;
}
cout << bfs(a, b) << endl;
}
}
同学记得代码放在三个`里面