#include<bits/stdc++.h> #define R register using namespace std; int w,h,s1,s2; char a[120][120]; int sum; void dfs(int x,int y){ if(x<1||y<1||x>h||y>w||a[x][y]=='#') return; sum++; a[x][y]='#'; dfs(x+1,y); dfs(x-1,y); dfs(x,y-1); dfs(x,y+1); } template <typename T> void read(T &t){ t=0; char ch=getchar(); int f=1; while(ch<'0'||ch>'9'){ if(ch=='-')f=-1; ch=getchar(); } do{ (t*=10)+=ch-'0'; ch=getchar(); }while(ch>='0'&&ch<='9'); t*=f; } int main(){ sum=0; read(w); read(h); for(R int i=1;i<=h;i++){ for(R int j=1;j<=w;j++){ cin>>a[i][j]; if(a[i][j]=='@'){ s1=i; s2=j; } } } dfs(s1,s2); printf("%d\n",sum); return 0; } /************************************************************** Problem: 1897 User: admin Language: C++ Result: Accepted Time:21 ms Memory:2092 kb ****************************************************************/