using namespace std;
const int N=110;
char a[N][N];
bool f[N][N];
int k,n,sx,sy,ex,ey;
int dx[]={0,0,-1,1};
int dy[]={-1,1,0,0};
bool flag;
void dfs(int x,int y){
	if(x==ex && y==ey){
		flag=true;
		return ;
	}
	f[x][y]=true;
	for(int i=0;i<4;i++){
		int tx=x+dx[i];
		int ty=y+dy[i];
		if(tx>=0 && tx<n && ty>=0 && ty<n && a[tx][ty]=='.' && !f[tx][ty]){
			dfs(tx,ty);
		}
	}
}
int main(){
	cin>>k;
	while(k--){
		cin>>n;
		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				cin>>a[i][j];
			}
		}
		cin>>sx>>sy>>ex>>ey;
		if(a[sx][sy]=='#' || a[ex][ey]=='#'){
			cout<<"NO"<<endl;
			continue;
		}
		flag=false;
		memset(f,false,sizeof f);
		dfs(sx,sy);
		if(flag) cout<<"YES"<<endl;
		else cout<<"NO"<<endl;
	}
	return 0;
}

0 条评论

目前还没有评论...