#include<bits/stdc++.h>
using namespace std;
const int M = 22;
char Map[M][M];
bool vis[M][M];
int w,h,ans;
int dir[4][2] = {{0,1},{0,-1},{1,0},{-1,0}};
void dfs(int si, int sj){
if(si<1||si>w||sj<1||sj>h) return;
ans++;
vis[si][sj]=1;
for(int i=0;i<4;i++){
int di,dj;
di = si+dir[i][0];
dj = sj+dir[i][1];
if(!vis[di][dj]&&Map[di][dj]=='.') dfs(di,dj);
}
}
int main(){
while(cin>>h>>w){
if(h==0&&w==0) break;
int si,sj;
for(int i=1;i<=w;i++)
for(int j=1;j<=h;j++){
cin>>Map[i][j];
vis[i][j] = 0;
if(Map[i][j]=='@'){
si = i;sj = j;
}
}
ans = 0;dfs(si,sj);
cout<<ans<<endl;
}
return 0;
}
05-20
05-20
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交