Submission

Status:

----------

Subtask/Task Score:

0/100

Score: 0

User: boss

Problemset: ทางเชื่อม

Language: cpp

Time: 0.367 second

Submitted On: 2026-05-10 11:52:19

#include<bits/stdc++.h>
using namespace std;
char arr[2][5005];
int dp[2][5005];
int const N=1e9+7;
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		memset(dp,0,sizeof dp);
		int x;
		cin>>x;
		for(int ii=0;ii<2;ii++)
		{
			for(int j=1;j<=x;j++)
			{
				cin>>arr[ii][j];
				
			}
		}
		dp[0][0]=1;
		dp[1][0]=1;
		for(int j=1;j<=x;j++)
		{
			if(arr[0][j]=='#'&&arr[1][j]=='.')
			{
				dp[1][j]=dp[1][j-1]%N;	
			}	
			else if(arr[1][j]=='#'&&arr[0][j]=='.')
			{
				dp[0][j]=dp[0][j-1]%N;
			}
			else if(arr[1][j]=='#'&&arr[0][j]=='#')
			{
				cout<<0;
				break;
			}
			else if(arr[1][j]=='.'&&arr[0][j]=='.')
			{
				dp[0][j]=(dp[0][j-1]+dp[1][j-1])%N;
				dp[1][j]=(dp[0][j-1]+dp[1][j-1])%N;
			}
				
		}
	
		cout<<dp[0][x]+dp[1][x]<<"\n";
	
		
	}
	
	return 0;
}