Submission

Status:

PPxx-xx---

Subtask/Task Score:

20/100

Score: 20

User: krittaphot

Problemset: ทางเชื่อม

Language: cpp

Time: 0.075 second

Submitted On: 2026-03-04 14:19:28

#include <bits/stdc++.h>
using namespace std;

static const long long MOD = 1000000007LL;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int T;
    cin >> T;
    while (T--) {
        int l;
        cin >> l;
        string a, b;
        cin >> a >> b;              

        long long dp0 = 1, dp1 = 1; 
        for (int j = 0; j < l; j++) {
            long long ndp0 = 0, ndp1 = 0;

            if (a[j] == '.' && b[j] == '.') {
                long long s = (dp0 + dp1) % MOD;
                ndp0 = s; ndp1 = s;
            } else if (a[j] == '.' && b[j] == '#') {
                ndp0 = dp0; ndp1 = 0;
            } else if (a[j] == '#' && b[j] == '.') {
                ndp0 = 0; ndp1 = dp1;
            } else {
                ndp0 = ndp1 = 0;
            }

            dp0 = ndp0; dp1 = ndp1;
        }

        cout << (dp0 + dp1) % MOD << "\n";
    }
    return 0;
}