#include <iostream>
using namespace std;
const int N=30;
char g[N][N];
int n,m,ans=1;
void dfs(int x,int y){
	int dx[4]={1,-1,0,0};
	int dy[4]={0,0,1,-1};
	 
	for(int i=0; i<4; i++){
		int x1 = x+dx[i], y1 = y+dy[i];
		if(x1>=0 && x1<n && y1>=0 && y1<m && g[x1][y1] == '.'){ 
			ans++;
			g[x1][y1] = '#';  
			dfs(x1,y1);
		}
	}
	
}
int main(){
	int x,y;
	while(cin>>m>>n,n && m){
		ans = 1;
		for(int i=0; i<n; i++){
			for(int j=0; j<m; j++){
				cin>>g[i][j];
				if(g[i][j] == '@') x = i, y = j; 
			}
		}
		
		dfs(x,y);
		cout<<ans<<endl;
	}
	
	return 0;
	
}




0 条评论

目前还没有评论...

信息

ID
218
时间
ms
内存
MiB
难度
2
标签
递交数
299
已通过
94
上传者