Submission
Status:
----------
Subtask/Task Score:
0/100
Score: 0
User: Banana777
Problemset: ทางเชื่อม
Language: cpp
Time: 0.940 second
Submitted On: 2026-03-01 20:35:54
#include<bits/stdc++.h>
using namespace std;
const long long MOD=1e9+7;
int main(){
int m;
cin>>m;
for(int i =0;i<m;i++){
int a;
cin>>a;
vector<vector<char>> mp(2,vector<char> (a));
vector<vector<long long>> val(2,vector<long long> (a));
for(int m =0;m<2;m++){
for(int j =0;j<a;j++){
cin>>mp[m][j];
}
}
if((mp[0][0]=='.')&&(mp[1][0]=='.')){
val[0][0]=2;
val[1][0]=2;
}
if((mp[1][0]=='.')&&(mp[0][0]=='#')){
val[1][0]=1;
val[0][0]=0;
}
if((mp[0][0]=='.')&&(mp[1][0]=='#')){
val[0][0]=1;
val[1][0]=0;
}if((mp[0][0]=='#')&&(mp[1][0]=='#')){
val[0][0]=0;
val[1][0]=0;
}
for(int j=1;j<a;j++){
if((mp[0][j]=='#')&&(mp[1][j]=='#')){
val[0][j]=0;
val[1][j]=0;
}else if((mp[0][j]=='.')&&(mp[1][j]=='.')){
val[0][j]=val[0][j-1]+val[1][j-1];
val[1][j]=val[0][j-1]+val[1][j-1];
}else if((mp[0][j]=='.')&&(mp[1][j]=='#')){
val[1][j]=0;
val[0][j]=val[0][j-1];
}else if((mp[1][j]=='.')&&(mp[0][j]=='#')){
val[1][j]=val[1][j-1];
val[0][j]=0;
}
//emoji:skull
}
int ans=0;
for(int m = 0;m<2;m++){
ans+=val[m][a-1];
}
cout<<ans<<"\n";
}
}