#include<bits/stdc++.h>
using namespace std;
int sx,sy,ex,ey,z,flag,k;
char a[100][100],use[100][100];
void dfs(int x,int y,int o){
	use[x][y]='#';
	if(x==ex&&y==ey){
		flag=1;
        return;
	} 
	int nx,ny;
	nx=x-1;
	ny=y;
	if(!(nx<0||nx>=o||ny<0||ny>=o)&&use[nx][ny]=='.'&&a[nx][ny]=='.'){
		dfs(nx,ny,o);	
	} 
	nx=x;
	ny=y+1;
	if(!(nx<0||nx>=o||ny<0||ny>=o)&&use[nx][ny]=='.'&&a[nx][ny]=='.'){
		dfs(nx,ny,o);	
	} 
	nx=x+1;
	ny=y;
	if(!(nx<0||nx>=o||ny<0||ny>=o)&&use[nx][ny]=='.'&&a[nx][ny]=='.'){
		dfs(nx,ny,o);	
	} 
	nx=x;
	ny=y-1;
	if(!(nx<0||nx>=o||ny<0||ny>=o)&&use[nx][ny]=='.'&&a[nx][ny]=='.'){
		dfs(nx,ny,o);	
	} 
}
int main(){
    cin>>k;
    for(int e=0;e<k;e++){
		for(int q=0;q<100;q++){
			for(int w=0;w<100;w++){
				use[q][w]='.';
			}
		}
        flag=0;
        cin>>z;
        for(int i=0;i<z;i++){
            for(int j=0;j<z;j++){
                cin>>a[i][j]; 
            }
        }
        cin>>sx>>sy>>ex>>ey;
        dfs(sx,sy,z);
        if(flag==1&&a[sx][sy]=='.'&&a[ex][ey]=='.') cout<<"YES\n";
        else cout<<"NO\n";
        
    }
	return 0;
}

0 条评论

目前还没有评论...

信息

ID
219
时间
ms
内存
MiB
难度
8
标签
递交数
171
已通过
27
上传者