Wrong Answer.wrong answer 2nd words differ - expected: 'YES', found: 'NO'
RT qwq
#include<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
using namespace std;
const int SIZE=110;
const int dx[3]={-1,0,1};
struct node{
int x,y;
};
queue<node> q;
bool vis[5][SIZE];
bool m[5][SIZE];
void clear(){
memset(vis,0,sizeof(vis));
memset(m,0,sizeof(m));
while(!q.empty())
q.pop();
}
void bfs(int x,int y,int n){
q.push((node){x,y});
while(!q.empty())
{
node k=q.front();q.pop();
if(k.x<=0||k.x>3||vis[k.x][k.y]) continue;
if(k.y>=n)
{
printf("YES\n");
return ;
}
vis[k.x][k.y]=true;
for(int i=0;i<3;i++)
{
if(m[k.x][k.y+1]&&m[k.x+dx[i]][k.y+1]&&m[k.x+dx[i]][k.y+2]&&m[k.x+dx[i]][k.y+3])
q.push((node){k.x+dx[i],k.y+3});
}
}
printf("NO\n");
}
int main(){
int T;
scanf("%d",&T);
while(T--)
{
clear();
int n,k,sx,sy;
scanf("%d%d",&n,&k);
for(int i=1;i<=3;i++)
{
for(int j=1;j<=n;j++)
{
char c;
cin>>c;
m[i][j]=(c=='.');
if(c=='s') sx=i,sy=j;
}
}
bfs(sx,sy,n);
}
return 0;
}