페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#5692

미로 탈출 명령어 1s 16MB

문제

N\times M격자 미로가 주어집니다. 당신은 미로의 (x,y)에서 출발해 (r,c)로 이동해서 탈출해야 합니다.

단, 미로를 탈출하는 조건이 세 가지 있습니다.

  1. 격자의 바깥으로는 나갈 수 없습니다.

  2. (x,y)에서 (r,c)까지 이동하는 거리가 총 k여야 합니다. 이때, (x, y)(r,c)격자를 포함해, 같은 격자를 두 번 이상 방문해도 됩니다.

  3. 미로에서 탈출한 경로를 문자열로 나타냈을 때, 문자열이 사전 순으로 가장 빠른 경로로 탈출해야 합니다.

이동 경로는 다음과 같이 문자열로 바꿀 수 있습니다.

  • l: 왼쪽으로 한 칸 이동

  • r: 오른쪽으로 한 칸 이동

  • u: 위쪽으로 한 칸 이동

  • d: 아래쪽으로 한 칸 이동

예를 들어, 왼쪽으로 한 칸, 위로 한 칸, 왼쪽으로 한 칸 움직였다면, 문자열 "lul"로 나타낼 수 있습니다.

미로에서는 인접한 상, 하, 좌, 우 격자로 한 칸씩 이동할 수 있습니다.

예를 들어 다음과 같이 3\times 4격자가 있다고 가정해 보겠습니다.

....
..S.
E...

미로의 좌측 상단은 (1,1)이고 우측 하단은 (3,4)입니다. .은 빈 공간, S는 출발 지점, E는 탈출 지점입니다.

탈출까지 이동해야 하는 거리 K5라면 다음과 같은 경로로 탈출할 수 있습니다.

  1. lldud

  2. ulldd

  3. rdlll

  4. dllrl

  5. dllud

  6. ...

이때 dllrl보다 사전 순으로 빠른 경로로 탈출할 수는 없습니다.

  • 1 ≤ N (= 미로의 세로 길이) ≤ 100

  • 1 ≤ M (= 미로의 가로 길이) ≤ 100

  • 1 ≤ XN

  • 1 ≤ YM

  • 1 ≤ RN

  • 1 ≤ CM

  • (X, Y) ≠ (R, C)

  • 1 ≤ K ≤ 10,000


입력

격자의 크기를 뜻하는 정수 N,M, 출발 위치를 뜻하는 정수 X,Y, 탈출 지점을 뜻하는 정수 R,C, 탈출까지 이동해야 하는 거리를 뜻하는 정수 K가 한 줄에 주어집니다.


출력

미로를 탈출하기 위한 경로를 출력해주세요. 단, 위 조건대로 미로를 탈출할 수 없는 경우 "impossible"을 출력 해야 합니다.


부분문제

번호 점수 조건
#130점
  • 1 ≤ N (= 미로의 세로 길이) ≤ 50

  • 1 ≤ M (= 미로의 가로 길이) ≤ 50

  • 1 ≤ K ≤ 2,500

#270점

추가적인 제한이 없습니다.


예제 #1

3 4 2 3 3 1 5
dllrl

예제 #2

2 2 1 1 2 2 2
dr

예제 #3

3 3 1 2 3 3 4
impossible

출처

2023 KAKAO BLIND RECRUITMENT
로그인해야 코드를 작성할 수 있어요.