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;
}