Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Fifaxmb

Problemset: ทางเชื่อม

Language: cpp

Time: 0.085 second

Submitted On: 2026-05-09 12:02:37

#include<bits/stdc++.h>
using namespace std;
#define Fifa67king ios::sync_with_stdio(0);cin.tie(0);
const int mod = 1e9 + 7;
using i64 = long long;
char r[5005],c[5005];
int main(){
    Fifa67king;
    int n;cin >> n;
    while(n --){
        i64 l;cin >> l;
        i64 dp1 = 1,dp2 = 1;
        cin >> r >> c;
        for(int i = 0;i < l;i++){
            i64 ndp1 = 0,ndp2  = 0;
            bool chk1 = (r[i] == '#'),chk2 = (c[i] == '#');
            if(!chk1 && !chk2){
                ndp1 = (dp1 + dp2) % mod;
                ndp2 = (dp1 + dp2) % mod;
            }
            else if(chk1 && !chk2){
                ndp2 = (dp2)%mod;
            }
            else if(!chk1 && chk2){
                ndp1 = (dp1)%mod;
            }
            dp1 = ndp1;dp2 = ndp2;
        }
        cout << (dp1 + dp2) % mod << '\n';
    }
}