hdu 1312 Red and Black
来源:互联网 发布:php入门视频教程下载 编辑:程序博客网 时间:2024/05/16 12:49
#include<iostream>using namespace std;int w,h,n;char z[27][27];int flag[27][27];int dir[4][2]={{0,1},{1,0},{-1,0},{0,-1}};void dfs(int x,int y){ int xx,yy,c; for(c=0;c<4;c++) { xx=x+dir[c][0]; yy=y+dir[c][1]; if(xx<0||xx>=h||yy<0||yy>=w)continue; if(flag[xx][yy]==0) { flag[xx][yy]=1; n++; dfs(xx,yy); } }}int main(){ int sx,sy,i,j; while(cin>>w>>h) { n=1; if(w==0&&h==0) break; for(i=0;i<h;i++) for(j=0;j<w;j++) cin>>z[i][j]; for(i=0;i<h;i++) for(j=0;j<w;j++) { if(z[i][j]=='@') { sx=i; sy=j; flag[i][j]=1; } else if(z[i][j]=='.') flag[i][j]=0; else flag[i][j]=1; } dfs(sx,sy); cout<<n<<endl; } return 0;}