Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: por
Problemset: Croissant Beyond Peaks
Language: cpp
Time: 0.013 second
Submitted On: 2026-01-21 21:22:40
#include<bits/stdc++.h>
using namespace std;
#define F first;
#define S second;
typedef long long ll;
typedef pair<ll,ll> pll;
ll dx[4]= {-1,1,0,0};
ll dy[4]= {0,0,-1,1};
int main(){
int t;
cin>>t;
while(t--){
ll n=2,m;
cin>>m;
char arr[n][m];
ll sx =-1, sy= -1, tx=-1, ty =-1;
for(int i=0;i<n;i++){
string s;
cin>>s;
for(int j=0;j<m;j++){
arr[i][j]=s[j];
if(s[j]=='S'){
sx =i, sy=j;
}
else if(s[j]=='T'){
tx =i, ty=j;
}
}
}
queue<pll> qu;
bool visited[n][m];
fill_n(visited[0], n*m,false);
qu.push({sx,sy});
while(!qu.empty()){
ll x = qu.front().first;
ll y = qu.front().second;
qu.pop();
if(visited[x][y]) continue;
visited[x][y] =true;
for(int i=0;i<4;i++){
ll tox = x + dx[i];
ll toy = y + dy[i];
if( tox<0|| toy<0||tox >n-1||toy>m-1) continue;
if(visited[tox][toy] || arr[tox][toy]== '#') continue;
qu.push({tox,toy});
}
}
cout<<(visited[tx][ty]? "Yes": "No")<<"\n";
}
}