페이지를 불러오는 중…
해결한 사람
1
명
정답률
100.00
%
시간 제한
5
ms
메모리 제한
1024
MB

슬라이딩 퍼즐 — Wikipedia
Níels는 비디오 게임 RúnaHeimur의 엄청난 실력자다. 게임에서는 낚시, 나무 베기, 용과 싸우기, 모자 구매하기, 모험 떠나기, 퍼즐 두루마리 풀기처럼 서로 다른 많은 일을 할 수 있다. Níels는 이 모든 일을 즐기지만, 한 가지 이유로 퍼즐 두루마리만은 싫어한다. 퍼즐 두루마리에서는 때때로 슬라이딩 퍼즐을 풀어야 하는데, 그는 이를 몹시 지루하다고 생각한다. 그래서 그는 자신을 대신해 이 퍼즐들을 풀어 주는 프로그램을 작성해 달라고 부탁한다.
슬라이딩 퍼즐에서는 그림이 개의 행과 개의 열로 나뉜다. 따라서 그림을 이루는 칸은 모두 개다. 칸에는 흔히 왼쪽에서 오른쪽으로 부터 까지의 수가 표시된다. 그러면 원래 상태는 예를 들어 다음과 같다.
1 2 3
4 5 6
7 8 9
그런 다음 칸을 움직일 공간을 만들기 위해 번호가 인 칸을 제거한다. 이후 그림이 뒤섞일 때까지 칸들을 무작위로 민다. 목표는 그림이 원래 모습대로 보이도록 칸들을 원래 위치로 옮기는 것이다.
각 게임 상태에서는 최대 네 가지 이동이 허용된다.
이동 U은 빈칸 바로 아래의 칸을 위로 옮긴다는 뜻이다.
이동 D은 빈칸 바로 위의 칸을 아래로 옮긴다는 뜻이다.
이동 L은 빈칸 바로 오른쪽의 칸을 왼쪽으로 옮긴다는 뜻이다.
이동 R은 빈칸 바로 왼쪽의 칸을 오른쪽으로 옮긴다는 뜻이다.
해당 이동에서 움직여야 하는 칸이 존재하지 않으면 그 이동은 그 게임 상태에서 불법이다.
그룹 | 점수 | 제한
1 | 15 |
2 | 15 |
3 | 15 |
4 | 5 |
5 | 15 |
6 | 15 |
7 | 15 |
8 | 5 | 추가 제한 없음
입력은 여러 줄로 주어진다. 첫째 줄에는 두 정수 와 ()가 주어지며, 여기서 는 게임판의 행 수를, 는 열 수를 나타낸다. 다음 개 줄에는 각각 개의 정수가 주어진다. 수는 부터 까지의 범위에 있으며, 각 수는 정확히 한 번씩 등장한다. 또한 수 은 항상 입력의 마지막 수다.
게임판을 완성된 상태로 만드는 이동들을 한 줄에 출력한다.
해답에 불법 이동이 포함되어 있으면 오답으로 판정된다.
해답이 존재하지 않으면 impossible을 출력한다.
해답이 존재한다면, 번보다 적은 이동으로 이루어진 해답이 존재한다고 가정해도 된다.
2 2
2 3
1 4
RDLURDLU
3 3
4 6 3
1 5 8
2 7 9
DDRRULURDLULDDRULDRULURDDLUURDLURDLURRDLLURDLURDLU
3 3
4 6 3
2 5 8
1 7 9
impossible
Forritunarkeppni Framhaldsskólanna
로그인 상태를 확인하는 중입니다.