1 solutions
-
0
包对的
#include<bits/stdc++.h> using namespace std; const int N=25,M=25; bool st[N][M]; char g[N][M]; int dx[]={-1,1,0,0}; int dy[]={0,0,-1,1}; int n,m; int cnt=0; void dfs(int x,int y) { for(int i=0;i<4;i++) { int a=x+dx[i],b=y+dy[i]; if(a<0||a>=n||b<0||b>=m) { continue; } if(st[a][b]) { continue; } if(g[a][b]=='#') { continue; } st[a][b]=1; cnt++; dfs(a,b); } } int main() { while(cin>>m>>n,m||n) { memset(st,0,sizeof st); cnt=0; for(int i=0;i<n;i++) { cin>>g[i]; } int sx,sy; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { if(g[i][j]=='@') { sx=i,sy=j; } } } st[sx][sy]=1; cnt=1; dfs(sx,sy); cout<<cnt<<endl; } return 0; }
- 1
Information
- ID
- 1009
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- (None)
- # Submissions
- 54
- Accepted
- 7
- Uploaded By