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";
    }
}