Problem H. 水管
#include<bits/stdc++.h>
#define Endl '\n'
using namespace std;
int m,fx,fy;
char mp[3][100005];
bool st[3][100005];
int f=0;
// k=1 xia k=2 shang k=3 zuo,k=4 you
void dfs(int x,int y,int k)
{
if(x==3 && y==fy)
{
f=1;
return;
}
if(st[x][y]||x<1||x>2||y<1||y>m)
return;
st[x][y]=true;
bool t;
if(mp[x][y]=='I')
{
if(k==1)
dfs(x+1,y,1);
else if(k==2)
dfs(x-1,y,2);
else if(k==3)
dfs(x,y-1,3);
else dfs(x,y+1,4);
}
else
{
if(k==1||k==2)
dfs(x,y-1,3),dfs(x,y+1,4);
else if(k==3||k==4)
dfs(x-1,y,2),dfs(x+1,y,1);
}
st[x][y]=false;
return;
}
void solve()
{
memset(st,0,sizeof(st));
cin>>m>>fx>>fy;
for(int i=1;i<=2;i++)
for(int j=1;j<=m;j++)
cin>>mp[i][j];
dfs(1,fx,1);
if(f==1)
cout<<"YES"<<Endl;
else cout<<"NO"<<Endl;
}
int main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
int t;
cin>>t;
while(t--)
{
f=0;
solve();
}
return 0;
}