Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: C12
Problemset: ทางเชื่อม
Language: cpp
Time: 0.327 second
Submitted On: 2026-01-08 11:22:12
#include <bits/stdc++.h>
using namespace std;
#define f first
#define s second
#define pii pair<ll,ll>
#define puii pair<ull,ull>
#define piii pair<ll,pii>
#define tiiii tuple<ll,ll,ll,ll>
#define ll long long
#define ull unsigned long long
#define mp make_pair
#define mt make_tuple
#define mpiiii(a,b,c) make_pair(a,make_pair(b,c));
ll mod = 1e9+7;
ll n;
ll prevs[2],curr[2];
void solve(){
cin >> n;
char t[2][5001];
for(int i = 0;i < n;i++){
cin >> t[0][i];
}
for(int i = 0;i < n;i++){
cin >> t[1][i];
}
prevs[0] = 1;
prevs[1] = 1;
for(int i = 0;i < n;i++){
curr[0] = 0;
curr[1] = 0;
if(t[0][i] == '.'){
curr[0] += prevs[0];
}
if(t[1][i] == '.')
{
curr[1] += prevs[1];
}
if(t[0][i] == '.' && t[1][i] == '.'){
curr[0] += prevs[1];
curr[1] += prevs[0];
}
prevs[0] = curr[0] % mod;
prevs[1] = curr[1] % mod;
}
ll out = (curr[0] + curr[1]) % mod;
cout << out << endl;
return;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
ll q;
cin >> q;
while(q--)
solve();
return 0;
}
/*
3
1
.
.
2
..
..
2
.#
..
3
1
#
.
3
.#.
...
3
.#.
..#
4
8
........
........
9
.........
.........
10
..........
..........
20
....................
....................
7
40
........................................
........................................
42
.....................#....................
..........................................
29
.............................
.............................
31
...................#...........
...............................
21
.....................
.....................
30
##...................##.......
............................##
80
.........................................#######################################
................................................................................
2,147,483,648
1,000,000,007
30
147,483,634
29
73,741,817
993,282,280
1,000,000,007
23240159
23240159
73741817
73741817
4194304
4194304
23240159
*/