Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: tull

Problemset: Croissant Beyond Peaks

Language: python

Time: 0.116 second

Submitted On: 2026-07-30 21:47:58

n=int()
s=['' for i in range(2)]
vst=[[0 for i in range(2)] for i in range(2)]
dir=1
st=0
def DFS(pos:int,lv:int)->None:
     global st
     if(st==1):
          return
     if(lv<0 or lv>1):
          return
     if(pos<0 or pos>=n):
          return
     if(s[lv][pos]=='#'):
          return
     if(s[lv][pos]=='T'):
          st=1
          return
     if(vst[lv][pos]==1):
          return
     vst[lv][pos]=1
     DFS(pos+dir,lv)
     DFS(pos,lv+1)
     DFS(pos,lv-1)

def tc():
     global n
     global s
     global vst
     global dir
     n=int(input())
     s=['' for i in range(2)]
     vst=[[0 for i in range(n)] for i in range(2)]
     s[0]=str(input())
     s[1]=str(input())
     pos=0
     lv=0
     pe=0
     for i in range(2):
          for j in range(n):
               if(s[i][j]=='S'):
                    pos=j
                    lv=i
               if(s[i][j]=='T'):
                    pe=j
     if(pe<pos):
          dir=-1
     else:
          dir=1
     DFS(pos,lv)
     if(st==1):
          print('Yes')
     else:
          print("No")
q=int(input())
while q>0:
     st=0
     tc()
     q-=1
'''
3
5
..#.T
...#S
10
..S.#..#.#
..#....#.T
13
...#...#...#S
T#...#...#...

'''