Logo
(追記) (追記ここまで)

34557번 - 횃불이의 모험

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB193907643.931%

문제

인천대학교의 마스코트 횃불이가 주인공인 ⟪횃불이의 모험⟫ 이라는 게임이 있습니다.

게임은 빈 칸과 장애물로 구성된 $N \times N$ 크기의 맵에서 진행됩니다.

이 맵의 $r$행 $c$열은 $(r, c)$으로 표현합니다. 예를 들어 맵의 가장 좌측 상단은 $(1, 1),ドル 우측 상단은 $(1, N),ドル 좌측 하단은 $(N, 1),ドル 우측 하단은 $(N, N)$과 같이 표현할 수 있습니다.

게임은 명령 W, A, S, D를 이용해 횃불이를 각각 상, 좌, 하, 우로 이동시킬 수 있습니다. 하지만 횃불이는 키가 눌린 순간 바로 이동하는 것이 아닌, 키에 할당된 키 이벤트가 발생할 때만 이동합니다.

각 키에는 아래의 세 가지 이벤트 중 하나가 할당됩니다.

  • Down: 직전 프레임에는 키가 눌리지 않았는데 이번 프레임에 키가 눌리면 발생합니다.
  • Stay: 직전 프레임과 이번 프레임 모두 키가 눌리면 발생합니다.
  • Up: 직전 프레임에는 키가 눌렸지만 이번 프레임에는 키가 눌리지 않으면 발생합니다.

횃불이는 장애물이 있거나 맵 바깥으로 이동하려 하는 경우 이동하지 않습니다.

⟪횃불이의 모험⟫은 $M$프레임동안 진행하면서 프레임마다 사용자가 누른 키가 주어지면 W, A, S, D 순서로 각 키에 대해 다음과 같이 처리합니다.

  1. 현재 처리하는 키가 이벤트 발생 조건을 만족했는지 확인합니다.
  2. 이벤트 발생 조건을 만족했다면 해당 이벤트를 발생시킵니다.
  3. 발생한 이벤트가 현재 처리하는 키에 할당된 이벤트와 동일하다면 횃불이가 이동합니다.

하나의 프레임에 하나의 키만 누를 수 있고 사용자가 키를 누르지 않는 경우는 없으며 게임이 시작하기 전 모든 키는 눌리지 않은 상태입니다.

맵과 각 키에 할당된 이벤트, 프레임마다 사용자의 키 입력이 주어졌을 때 횃불이의 최종 위치를 구해주세요.

예제 1ドル$번을 통하여 자세한 작동을 보실 수 있습니다.

입력

첫째 줄에 맵의 크기를 나타내는 정수 $N$와 프레임의 길이 $M$가 주어집니다. (1ドル \leq N \leq 100; 1 \leq M \leq 10^{6}$)

둘째 줄부터 $N$개 줄에 걸쳐 맵을 나타내는 크기 $N \times N$ 행렬이 주어집니다. 0ドル$은 빈 칸, 1ドル$은 장애물이 있는 칸, 2ドル$는 횃불이의 시작 위치입니다.

다음 네 줄에 걸쳐 W, A, S, D 각 키에 할당된 키보드 이벤트가 순서대로 한 줄씩 주어집니다.

다음 줄에 프레임마다 누른 키가 공백없이 한 줄로 주어집니다.

출력

횃불이의 최종 위치 $(r,c)$를 공백으로 구분하여 $r c$ 형태로 출력해 주세요.

제한

예제 입력 1

5 6
0 0 2 0 0
0 1 0 0 1
1 1 0 0 0
0 0 1 0 0
0 0 0 0 0
Down
Stay
Up
Stay
SSWWAA

예제 출력 1

2 3

예제 1에서 횃불이는 $(1, 3)$에서 시작해 매 프레임 다음과 같이 움직입니다.

  • 프레임 1 (S): S키의 Down 이벤트가 발생합니다. 하지만 S키에는 Up 이벤트가 할당되어 있어 움직이지 않습니다.
  • 프레임 2 (S): S키의 Stay 이벤트가 발생합니다. 하지만 S키에는 Up 이벤트가 할당되어 있어 움직이지 않습니다.
  • 프레임 3 (W): W키의 Down 이벤트가 발생합니다. W키에 할당된 이벤트와 동일하므로 횃불이가 위쪽으로 움직이려 합니다. 하지만 이동하려는 칸이 맵 바깥이므로 움직이지 않습니다. 곧바로 S키의 Up 이벤트가 발생합니다. S키에 할당된 이벤트와 동일하므로 횃불이가 아래쪽으로 움직여 횃불이의 좌표는 $(2, 3)$이 됩니다.
  • 프레임 4 (W): W키의 Stay 이벤트가 발생합니다. 하지만 W키에는 Down 이벤트가 할당되어 있어 움직이지 않습니다.
  • 프레임 5 (A): W키의 Up 이벤트가 발생합니다. 하지만 W키에는 Down 이벤트가 할당되어 있어 움직이지 않습니다. 곧바로 A의 Down 이벤트가 발생합니다. 하지만 A키에는 Stay 이벤트가 할당되어 있어 움직이지 않습니다.
  • 프레임 6 (A): A키의 Stay 이벤트가 발생합니다. A키에 할당된 이벤트와 동일하므로 횃불이가 왼쪽으로 움직이려 합니다. 하지만 이동하려는 칸에 장애물이 있어 움직이지 않습니다.

최종적인 횃불이의 위치는 $(2, 3)$입니다.

노트

출처

University > 인천대학교 > INU 코드페스티벌 2025 F번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /