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