아리스, 청소합니다! (Easy)

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

요약
로봇 청소기가 격자에서 칸을 청소했는지에 따라 규칙표 A 또는 B를 참조해 회전한 뒤 전진하고, 격자를 벗어나거나 더 청소할 수 없을 때까지 이동한 횟수를 센다.
난이도

보통10점 중 5점

유형
시뮬레이션, 구현, 배열, 그래프
정답자
아직 제출이 없습니다

문제

뽜밤뽜밤-! 아리스는 메이드 용사로 전직했습니다!

밀레니엄 사이언스 스쿨 엔지니어부의 히비키는 튜링 머신과 비슷한 원리로 작동하는 로봇 청소기를 발명했습니다.

히비키는 로봇 청소기로 H×WH \times W 직사각형 격자 모양의 게임개발부 부실을 청소하려고 합니다. 격자칸의 좌표는 (r,c)(r,c)로 나타낼 수 있으며, 아래로 갈수록 rr이 증가하고 오른쪽으로 갈수록 cc가 증가합니다. 가장 왼쪽 위 칸의 좌표는 (0,0)(0,0), 오른쪽 아래 칸의 좌표는 (H−1,W−1)(H-1,W-1)입니다.

처음에 모든 칸은 먼지로 뒤덮여 있습니다. 로봇 청소기는 격자 한 칸 크기이며, 바라보는 방향으로 전진하거나 제자리에서 회전할 수 있습니다.

로봇 청소기의 전원을 켜면 다음과 같이 작동합니다. 먼저 H×WH \times W 크기의 규칙표 AA와 BB를 만듭니다. 규칙표의 각 칸은 청소할 영역의 격자칸에 대응됩니다. 규칙표에는 회전 각도가 적혀 있습니다.

이후 로봇 청소기는 매 단위 시간마다 다음과 같은 이동을 반복합니다.

  • 현재 칸에 먼지가 있다면 먼지를 제거합니다.
  • 방금 먼지를 제거했다면 규칙표 AA를, 먼지를 제거하지 않았다면 규칙표 BB를 참조합니다. 규칙표에서 현재 좌표에 적힌 만큼 시계방향으로 회전합니다.
  • 바라보는 방향으로 한 칸 전진합니다.

이동을 마친 후에, 로봇 청소기가 영역 밖으로 벗어났다면 작동을 중지합니다. 또한, 지금부터 위의 과정을 아무리 반복해도 더이상 먼지를 제거할 수 없는 경우에도 작동을 중지합니다.

메이드 용사로 전직한 아리스는 히비키의 로봇청소기를 보고, 용사 수행을 위해 로봇 청소기와 똑같은 원리로 동작하여 게임개발부 부실을 청소하려고 합니다. 방의 구조와 아리스의 처음 위치, 그리고 규칙표가 주어집니다. 아리스가 청소를 시작하고 마칠 때까지 이동한 횟수를 출력하세요.

입력

첫 번째 줄에 방의 크기를 나타내는 H,WH, W가 주어집니다. (1≤H,W≤64)(1 \le H, W \le 64)

두 번째 줄에 아리스의 처음 위치를 나타내는 R,C,DR, C, D가 주어집니다. 아리스의 좌표는 (R,C)(R,C)이고, 위쪽을 기준으로 시계방향으로 90D90D도만큼 회전한 방향을 바라보고 있음을 나타냅니다. (0≤R<H;(0 \le R < H; 0≤C<W;0 \le C < W; 0≤D≤3)0 \le D \le 3)

다음 HH개의 줄에 규칙표 AA가 주어집니다.

다음 HH개의 줄에 규칙표 BB가 주어집니다.

규칙표는 길이 WW인 문자열 HH개로 주어집니다. 문자열은 00 이상 33 이하의 숫자로 구성되며, 숫자 dd는 90d90d도 회전을 의미합니다.

출력

아리스가 청소를 시작하고 마칠 때까지 이동한 횟수를 출력하세요.

예제2

  1. 예제 1

    입력
    3 4
    1 3 0
    1122
    1003
    3330
    1200
    3031
    3332
    
    예상 출력
    13
    
  2. 예제 2

    입력
    3 4
    1 3 0
    1122
    1003
    3330
    1200
    1031
    3332
    
    예상 출력
    9