#include <stdio.h>
/*
void dfs(int step)
{
判断边界
尝试每一种可能 for(i=0;i<=n;i++)
{
继续下一步 dfs(step+1);
}
return ;
}
*/
int main()
{
char a[20][21];
int i,j,sum,map=0,p,q,x,y,n,m;
scanf("%d%d",&n,&m);
for(i=0;i<=n-1;i++)
scanf("%s",a[i]);
for(i=0;i<=n-1;i++)
{
for(j=0;j<=m-1;j++)
{
if(a[i][j]=='.')
{
sum=0;
x=i;y=j;
while(a[x][y]!='#')
{
if(a[x][y]=='G')
sum++;
x--;
}
x=i;y=j;
while(a[x][y]!='#')
{
if(a[x][y]=='G')
sum++;
x++;
}
x=i;y=j;
while(a[x][y]!='#')
{
if(a[x][y]=='G')
sum++;
y--;
}
x=i;y=j;
while(a[x][y]!='#')
{
if(a[x][y]=='G')
sum++;
y++;
}
if(sum>map)
{
map=sum;
p=i;
q=j;
}
}
}
}
printf("%d %d %d",p,q,map);
return 0;
}
有个问题,就是该方法如果碰到某个地方四周都是怪兽或者墙,没有办法放置炸弹时,可能导致错误结果。