Submission
Status:
PP--------
Score: 20
User: Jibhong
Problemset: ทางเชื่อม
Language: cpp
Time: 0.368 second
Submitted On: 2025-03-31 21:32:37
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0);cin.tie(0);
int q;
cin>>q;
while(q--){
int n;
cin>>n;
bool mem[n+2];
bool mem1[n+2];
memset(mem,0,sizeof(mem));
memset(mem1,0,sizeof(mem1));
for(int i=1;i<=n;++i){
char inp;
cin>>inp;
if(inp=='.')mem[i]=1;
}
for(int i=1;i<=n;++i){
char inp;
cin>>inp;
if(inp=='.')mem1[i]=1;
}
mem[0]=mem[1];
mem1[0]=mem1[1];
mem[n+1]=1;
mem1[n+1]=1;
int out=1;
for(int i=0;i<=n;++i){
if((mem[i]==mem1[i-1] && mem[i]==0)||(mem[i-1]==mem1[i] && mem1[i]==0)||(mem[i]==mem1[i] && mem[i]==0)){
out=0;
break;
}
if(mem[i+1]==0||mem1[i+1]==0)continue;
out*=mem[i]+mem1[i];
out%=1000000007;
}
cout<<out<<'\n';
}
return 0;
}