Submission

Status:

PPPPPPPPPP

Score: 100

User: meme_boi2

Problemset: ทางเชื่อม

Language: cpp

Time: 0.078 second

Submitted On: 2025-04-30 22:40:38

#include <bits/stdc++.h>
#define pb push_back
#define pii pair<int,int>
#define f first
#define s second
#define INF (int)9e18
#define MOD (int)(1e9+7)
#define MAXN 200005
#define enl '\n'
#define DB(CODE) cout<<'\t'<<CODE<<'\n';
#define SP <<' '<<
#define int long long
typedef long long ll;
using namespace std;
void testcase(){
    int n;
    cin >> n;
    char s[2][5001];
    cin >> s[0] >> s[1];
    //scanf(" %s %s",s[0],s[1]);
    int cnt=(s[0][0]=='.')+(s[1][0]=='.');
    for(int i=0; i<n-1; i++){
        if((s[0][i]=='#' || s[0][i+1]=='#') && (s[1][i]=='#' || s[1][i+1]=='#')) cnt=0;
        if(!(s[0][i]=='#' || s[1][i]=='#' || s[0][i+1]=='#' || s[1][i+1]=='#')) cnt=(cnt<<1)%MOD;
    }
    if(s[0][n-1]=='#' && s[1][n-1]=='#') cnt=0;
    if(!(s[0][n-1]=='#' || s[1][n-1]=='#')) cnt=(cnt<<1)%MOD;
    cout << cnt << enl;
}
signed main(){
    cin.tie(0)->sync_with_stdio(false);
    int t=1;
    cin >> t;
    while(t--){
        testcase();
    }
    return 0;
}