Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: modx9572
Problemset: Croissant Beyond Peaks
Language: cpp
Time: 0.021 second
Submitted On: 2025-12-16 20:28:15
#include <bits/stdc++.h>
using namespace std;
int main(){
int q;
cin >> q;
for(int i=0;i<q;i++){
int m;
cin >> m;
int n=2;
string s[2];
cin >> s[0];
cin >> s[1];
queue<pair<int,int>> qu;
bool visited[n][m];
int dx[4]={-1,1,0,0};
int dy[4]={0,0,-1,1};
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
visited[i][j]=false;
}
}
int a,b;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(s[i][j]=='S'){
a=i;
b=j;
}
}
}
int a1,b1;
bool ok=false;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(s[i][j]=='T'){
a1=i;
b1=j;
}
}
}
qu.push({a,b});
while(!qu.empty()){
auto[x,y]=qu.front();
qu.pop();
if(visited[x][y]){
continue;
}
visited[x][y]=true;
if(s[x][y]=='T'){
ok=true;
}
for(int k=0;k<4;k++){
int tox=x+dx[k];
int toy=y+dy[k];
if(tox<0||toy<0||tox>n-1||toy>m-1){
continue;
}
if(s[tox][toy]=='#'||visited[tox][toy]==true){
continue;
}
qu.push({tox,toy});
}
}
if(ok==true){
cout<<"Yes\n";
}
else if(ok==false){
cout<<"No\n";
}
}
}