종이 접기 게임

시간 제한1초메모리 제한128 MB

요약
직사각형 종이를 여러 번 접은 뒤 주어진 점 아래에 몇 겹의 종이가 있는지 센다.
난이도

보통10점 중 5점

유형
시뮬레이션, 구현, 기하, 재귀
정답자
아직 제출이 없습니다

문제

앨리스가 밥 앞에 직사각형 종이 한 장을 놓는다. 이 종이는 너비가 WW, 높이가 HH이며 평평하게 놓여 있다. 그런 다음 앨리스는 종이를 NN번 접는다. 각 접기는 가로 접기 또는 세로 접기이다. 가로로 접으면 너비는 WW 그대로이고 높이가 더 작은 직사각형이 남고, 세로로 접으면 높이는 HH 그대로이고 너비가 더 작은 직사각형이 남는다.

접기를 모두 끝낸 뒤, 앨리스는 완성된 직사각형의 어떤 점을 손가락으로 누르고 묻는다. 손가락 바로 아래에는 종이가 몇 겹 있는가?

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 세 정수가 있는 줄로 시작한다.

W H N

여기서 WW와 HH(0<W,H≤1060 < W, H \le 10^6)는 종이의 너비와 높이이고, NN(0≤N≤200 \le N \le 20)은 접는 횟수이다. WW와 HH는 모두 짝수이다. 이어지는 NN개의 줄에는 각각 문자 하나와 수 하나가 공백 하나로 구분되어 주어진다.

D K

대문자 DD는 T, B, L, R 중 하나로, 접기가 각각 위(Top), 아래(Bottom), 왼쪽(Left), 오른쪽(Right) 중 어느 방향에서 이루어지는지를 나타낸다. 수 KK는 그 변에서부터 잰, 접는 위치를 나타낸다. 예를 들어 DD가 T이면 앨리스는 위쪽 변을 들어 아래로 접는다. KK는 항상 종이 위에 있으며 짝수이다. 각 테스트 케이스의 마지막 줄에는 두 정수가 주어진다.

X Y

이는 앨리스가 손가락을 놓는 점으로, 왼쪽 아래 모서리에서부터 잰 값이다. XX는 오른쪽으로의 거리, YY는 위쪽으로의 거리이다. 점 (X,Y)(X, Y)는 완전히 접힌 종이 위에 있음이 보장되며, XX와 YY는 모두 홀수이다. WW, HH, 그리고 모든 KK가 짝수이므로, 점 (X,Y)(X, Y)는 결코 변이나 접힌 선 위에 정확히 놓이지 않는다. 입력은 세 개의 0이 있는 줄로 끝난다.

출력

각 테스트 케이스마다, 점 (X,Y)(X, Y)에 있는 종이의 겹 수를 정수 하나로 한 줄에 출력한다. 불필요한 공백을 출력하지 말고, 답 사이를 빈 줄로 구분하지 마라.

예제1

  1. 예제 1

    입력
    10 10 1
    B 4
    5 1
    10 10 1
    B 4
    7 5
    10 10 1
    T 6
    3 1
    10 10 1
    T 6
    9 3
    14 10 2
    L 4
    R 4
    3 3
    0 0 0
    
    예상 출력
    2
    1
    1
    2
    3