Submission

Status:

[TSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: Nathako9n

Problemset: fireball

Language: cpp

Time: 1.094 second

Submitted On: 2026-01-18 22:04:36

#include <bits/stdc++.h>
#define endl '\n'
#define ll long long
using namespace std;
const int N = 5005;
const ll mod = 1000000007;
char ar[3][N+2];
int n, m;
ll dp[2][N+2];
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin >> m;
    while(m--){
        cin >> n;
        for(int i=1;i<=2;i++){
            for(int j=1;j<=n;j++){
                cin>>ar[i][j];
            }
        }
        //for(int i=0;i<=1;i++)for(int j=0;j<N;j++)dp[i][j]=0;
        for(int i=1;i<=n;i++){

            if(ar[1][i]=='#'&&ar[2][i]=='#'){
                cout<<0;continue;
            }
        }
        dp[1][0]=dp[2][0]=1;
        for(int i=1;i<=n;i++){
            dp[1][i]=dp[2][i]=0;
            if(ar[1][i]!='#'&&ar[2][i]!='#'){
                dp[1][i]=(dp[1][i-1]+dp[2][i-1])%mod;
                dp[2][i]=dp[1][i];
            }
            else if(ar[2][i]=='#'){
                dp[1][i]=dp[1][i-1];
            }
            else{
                dp[2][i]=dp[2][i-1];
            }
        }
        cout<<(dp[1][n]+dp[2][n])%mod<<endl;
    }

    return 0;
}


/*

3
1
.
.
2
..
..
2
.#
..

1
1
.
.


*/