#include<cstdio> #include<algorithm> using namespace std; char a[25][25],vis[25][25]; int m,n,sum=1; int (int x,int y ) { return x>=1&&x<=m&&y>=1&&y<=n; } void dfs(int x,int y) { if(vis[x][y]) return; vis[x][y]=1; sum++; if(jc(x+1,y)&&a[x+1][y]==a[x][y]) dfs(x+1,y); if(jc(x,y+1)&&a[x][y+1]==a[x][y]) dfs(x,y+1); if(jc(x-1,y)&&a[x-1][y]==a[x][y]) dfs(x-1,y); if(jc(x,y-1)&&a[x][y-1]==a[x][y]) dfs(x,y-1); } int main() { while(scanf("%d %d",&n,&m),m||n) { int i,j,d,f,k=0; for(i=1;i<=m;i++) { scanf("%s",a[i]+1); } memset(vis,0,sizeof(vis)); for(i=1;i<=m;i++) { for(j=1;j<=n;j++) { if(a[i][j]=='@') { a[i][j]='.'; d=i;f=j; } } } sum=0; dfs(d,f); k=sum; printf("%dn",k); } return 0; }
|
近期评论