Submission
Status:
----------
Subtask/Task Score:
0/100
Score: 0
User: C12
Problemset: ทางเชื่อม
Language: cpp
Time: 0.285 second
Submitted On: 2026-01-08 00:45:46
#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 = 1000000007;
ll n;
bool board[2][5001];
void solve(){
cin >> n;
char t;
for(int i = 0;i < n;i++){
cin >> t;
if(t == '.'){
board[0][i] = 1;
}
else{
board[0][i] = 0;
}
}
for(int i = 0;i < n;i++){
cin >> t;
if(t == '.'){
board[1][i] = 1;
}
else{
board[1][i] = 0;
}
}
ll prev[2],curr[2];
prev[0] = 1;
prev[1] = 1;
for(int i = 0;i < n;i++){
curr[0] = 0;
curr[1] = 0;
if(board[0][i]){
curr[0] += prev[0];
}
if(board[1][i])
{
curr[1] += prev[1];
}
if(board[0][i] && board[1][i]){
curr[0] += prev[1];
curr[1] += prev[0];
}
prev[0] = curr[0];
prev[1] = curr[1];
}
cout << (curr[0] + curr[1]) << '\n';
return;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
ll q;
cin >> q;
while(q--)
solve();
return 0;
}
/*
3
1
.
.
2
..
..
2
.#
..
*/