7127 : 주사위 굴리기
•시간제한: 2.000 S
•메모리제한: 256 MB
•제출: 0
•통과: 0
•만든사람: suakii
문제 설명
N × M 지도가 있고, 주사위가 지도 위에 놓여 있습니다.
지도의 각 칸에는 숫자가 쓰여 있습니다. 주사위를 동(1), 서(2), 북(3), 남(4)으로 한 칸씩 굴릴 때, 다음 규칙에 따라 지도와 주사위의 바닥면 숫자가 상호작용합니다.
- 주사위를 굴렸을 때, 이동한 칸에 쓰여 있는 수가 0이면, 주사위의 바닥면에 쓰여 있는 수가 칸에 복사됩니다.
- 0이 아니면, 칸에 쓰여 있는 수가 주사위의 바닥면으로 복사되며, 칸의 수는 0이 됩니다.
주사위가 이동할 때마다 윗면에 쓰여 있는 값을 출력하십시오. (만약 격자 밖으로 나가는 명령인 경우 해당 명령어는 무시하고 출력도 하지 않습니다.)
[제약 조건]
• 입력되는 모든 수는 정수입니다.
지도의 각 칸에는 숫자가 쓰여 있습니다. 주사위를 동(1), 서(2), 북(3), 남(4)으로 한 칸씩 굴릴 때, 다음 규칙에 따라 지도와 주사위의 바닥면 숫자가 상호작용합니다.
- 주사위를 굴렸을 때, 이동한 칸에 쓰여 있는 수가 0이면, 주사위의 바닥면에 쓰여 있는 수가 칸에 복사됩니다.
- 0이 아니면, 칸에 쓰여 있는 수가 주사위의 바닥면으로 복사되며, 칸의 수는 0이 됩니다.
주사위가 이동할 때마다 윗면에 쓰여 있는 값을 출력하십시오. (만약 격자 밖으로 나가는 명령인 경우 해당 명령어는 무시하고 출력도 하지 않습니다.)
[제약 조건]
• 입력되는 모든 수는 정수입니다.
입력 설명
첫째 줄에 지도의 세로 크기 N, 가로 크기 M, 주사위를 놓은 곳의 좌표 r, c, 명령의 개수 K가 주어집니다. (1 ≤ N, M ≤ 20, 0 ≤ r < N, 0 ≤ c < M, 1 ≤ K ≤ 1,000)
둘째 줄부터 N개의 줄에 걸쳐 지도 정보가 주어집니다.
마지막 줄에 K개의 이동 명령(1:동, 2:서, 3:북, 4:남)이 공백으로 구분되어 주어집니다.
둘째 줄부터 N개의 줄에 걸쳐 지도 정보가 주어집니다.
마지막 줄에 K개의 이동 명령(1:동, 2:서, 3:북, 4:남)이 공백으로 구분되어 주어집니다.
출력 설명
주사위가 한 번 이동할 때마다 주사위의 윗면에 적힌 값을 한 줄에 하나씩 출력합니다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
4 4 2 2 4
0 2 0 0
0 3 0 0
0 0 5 0
0 0 0 0
1 3 2 4
출력 예시
COPY
복사되었습니다!
복사되었습니다!
0
0
0
0
도움
주사위의 6면(위, 아래, 앞, 뒤, 좌, 우) 상태를 1차원 리스트로 선언하고, 굴리는 방향에 따라 면들의 위치를 직접 교환(Swap)하십시오.