Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
56894 | 杨中琦 | 红与黑 | C++ | 通过 | 100 | 0 MS | 256 KB | 642 | 2022-08-03 15:57:20 |
#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; }