Submission

Status:
PP--------

Score: 20

User: Jibhong

Problemset: ทางเชื่อม

Language: cpp

Time: 0.347 second

Submitted On: 2025-03-31 21:26:25

#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));
        bool iszero=0;
        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;
}