提交时间:2022-07-29 17:57:53
运行 ID: 54963
#include<bits/stdc++.h> using namespace std; int w,h,mp[25][25],sx,sy,d[4][2]={{1,0},{0,1},{-1,0},{0,-1}},ans; char t; int dfs(int x,int y){ for(int i=0;i<4;i++){ int tx=x+d[i][0],ty=d[i][1]+y; if(tx<=h&&ty<=w&&tx>0&&ty>0&&mp[tx][ty]==0){ mp[tx][ty]=1; ans++; dfs(tx,ty); } } } int main(){ cin>>w>>h; while(w+h){ ans=0; memset(mp,0,sizeof(mp)); for(int i=1;i<=h;i++)for(int j=1;j<=w;j++){ cin>>t; if(t=='#')mp[i][j]=2; if(t=='@')sx=i,sy=j; } dfs(sx,sy); if(ans==0)cout<<1<<endl; else cout<<ans<<endl; cin>>w>>h; } return 0; }