뇌 접기 (Easy)
시간 제한2초메모리 제한1024 MB
종이를 접는 순서와 한 번의 자르는 선이 주어질 때, 펼친 뒤 생기는 종이 조각의 수를 10^9+7로 나눈 나머지로 구합니다.
문제
Shandyna는 너드 스나이핑(nerd sniping)을 좋아한다. (관련 xkcd) 걱정하지 마라, 안전한 환경에서만 한다.
지난번에는 한 번에 다섯 명을 스나이핑했다. 그들을 봤을 때, 그들은 여전히 주변에 앉아 접힌 종이 한 장을 상상하려고 애쓰고 있었다.
직사각형 종이가 한 장 있다. 이 종이를 여러 번 반으로 접는다. 접을 때마다 한쪽 변을 집어서 반대쪽 변 위에 올려놓는다. 집을 수 있는 변은 네 개이므로 한 번 접는 방법은 네 가지다. (가로 접기 두 가지, 세로 접기 두 가지.)
마지막 접기가 끝나면 직선을 하나 골라 접힌 종이의 모든 겹을 통과하도록 자른다. 자른 뒤 최종적으로 종이 조각은 몇 개인가?
입력
첫 줄에는 테스트 케이스 수 이 주어진다. 각 테스트 케이스 앞에는 빈 줄이 하나 있다.
각 테스트 케이스는 세 줄로 이루어진다.
첫 줄에는 접기 횟수 ()이 주어진다.
둘째 줄에는 접은 순서대로 개의 문자가 주어진다. T, B, L, R은 각각 위, 아래, 왼쪽, 오른쪽 변을 집어 올리는 접기를 뜻한다. 따라서 T는 위쪽 변을 아래쪽 변 위에 올려 접는 것이다.
마지막 줄은 자르는 선을 설명한다. 자르는 선은 접힌 종이의 모서리를 지나지 않는다. 선이 변과 만나는 정확한 위치는 조각 수에 영향을 주지 않으므로, 자르는 선은 교차하는 두 변의 문자로만 주어진다. 예를 들어 TR은 접힌 종이의 위쪽 변과 오른쪽 변을 지나는 선이다.
각 자르는 선은 가로 또는 세로 방향이다. 즉 두 문자는 T와 B이거나 L과 R이다.
출력
각 테스트 케이스마다 한 줄에 자른 뒤 남는 종이 조각의 수 를 로 나눈 나머지를 출력한다.