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
.
.
*/