#include<iostream>
#include<cstdio>
#include<iomanip>
using namespace std;
char map[1000][1000];
int num[1000][1000];
int dx[4]={0,0,-1,1};
int dy[4]={-1,1,0,0};
int que1[10000];
int que2[10000];
int main()
{
int n,m,i,j,k=0,e=1,x1,x2,y1,y2,x,y,flag,t;
scanf("%d",&t);
for(k=1;k<=t;k++)
{
memset(num,0,sizeof(num));
flag=0;
scanf("%d%d",&m,&n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
cin>>map[i][j];
if(map[i][j]=='S')
{
que1[1]=i;
que2[1]=j;
num[i][j]=0;
map[i][j]='#';
}
if(map[i][j]=='E')
{
x2=i;
y2=j;
}
}
}
int head=0,tail=1;
while(head<tail)
{
head++;
for(i=0;i<=3;i++)
{
x=que1[head]+dx[i];
y=que2[head]+dy[i];
if(x>=0&&x<m&&y>=0&&y<n&&map[x][y]!='#'&&num[x][y]==0)
{
tail++;
que1[tail]=x;
que2[tail]=y;
num[x][y]=num[que1[head]][que2[head]]+1;
if(x==x2&&y==y2&&map[x][y]=='E')
{
flag=1;
cout<<num[x][y]<<endl;
break;
}
map[x][y]='#';
}
}
if(flag==1)break;
}
if(flag==0)cout<<"oop!"<<endl;
}
return 0;
}
1256:献给阿尔吉侬的花束
最新推荐文章于 2023-09-14 11:36:57 发布