만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

뇌 접기 (Easy)

시간 제한2초메모리 제한1024 MB

요약
종이를 접는 순서와 한 번의 자르는 선이 주어질 때, 펼친 뒤 생기는 종이 조각의 수를 10^9+7로 나눈 나머지로 구합니다.
난이도

쉬움10점 중 3점

유형
수학, 구현
정답자
아직 제출이 없습니다

문제

Shandyna는 너드 스나이핑(nerd sniping)을 좋아한다. (관련 xkcd) 걱정하지 마라, 안전한 환경에서만 한다.

지난번에는 한 번에 다섯 명을 스나이핑했다. 그들을 봤을 때, 그들은 여전히 주변에 앉아 접힌 종이 한 장을 상상하려고 애쓰고 있었다.

직사각형 종이가 한 장 있다. 이 종이를 여러 번 반으로 접는다. 접을 때마다 한쪽 변을 집어서 반대쪽 변 위에 올려놓는다. 집을 수 있는 변은 네 개이므로 한 번 접는 방법은 네 가지다. (가로 접기 두 가지, 세로 접기 두 가지.)

마지막 접기가 끝나면 직선을 하나 골라 접힌 종이의 모든 겹을 통과하도록 자른다. 자른 뒤 최종적으로 종이 조각은 몇 개인가?

입력

첫 줄에는 테스트 케이스 수 t=100t = 100이 주어진다. 각 테스트 케이스 앞에는 빈 줄이 하나 있다.

각 테스트 케이스는 세 줄로 이루어진다.

첫 줄에는 접기 횟수 nn (1≤n≤1051 \le n \le 10^5)이 주어진다.

둘째 줄에는 접은 순서대로 nn개의 문자가 주어진다. T, B, L, R은 각각 위, 아래, 왼쪽, 오른쪽 변을 집어 올리는 접기를 뜻한다. 따라서 T는 위쪽 변을 아래쪽 변 위에 올려 접는 것이다.

마지막 줄은 자르는 선을 설명한다. 자르는 선은 접힌 종이의 모서리를 지나지 않는다. 선이 변과 만나는 정확한 위치는 조각 수에 영향을 주지 않으므로, 자르는 선은 교차하는 두 변의 문자로만 주어진다. 예를 들어 TR은 접힌 종이의 위쪽 변과 오른쪽 변을 지나는 선이다.

각 자르는 선은 가로 또는 세로 방향이다. 즉 두 문자는 T와 B이거나 L과 R이다.

출력

각 테스트 케이스마다 한 줄에 자른 뒤 남는 종이 조각의 수 xx를 109+710^9 + 7로 나눈 나머지를 출력한다.

예제1

  1. 예제 1

    입력
    1
    
    2
    LB
    TB
    
    예상 출력
    3