#include
#include
int dir[8][2]={{0,1},{1,0},{-1,0},{0,-1},{1,-1},{-1,1},{1,1},{-1,-1}};
int n,m,s_x,s_y,s,sum;
int hash[21][21],num[401];
char map[21][21];
void dfs(int x,int y){
int tx,ty,i;
hash[x][y]=0;
s++;
for(i=0;i=0&&tx=0&&ty<m&&hash[tx][ty]&&map[tx][ty]=='X')
dfs(tx,ty);
}
}
int main(){
int i,j;
while(scanf("%d%d%d%d",&n,&m,&s_x,&s_y),n||m||s_x||s_y){
memset(num,0,sizeof(num));
s=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
hash[j]=1;
for(i=0;i<n;i++)
scanf("%s",map);
dfs(s_x-1,s_y-1);
for(sum=0,i=1;i<=s;i++)
sum+=4-num;
printf("%d\n",sum);
}
return 0;
}
求解!!!!急!!!!!!
那个printf("########i:%d num[]:%d s:%d\n",i,num,s);是测试数据的,可忽略
|