만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

의자

면접 대비

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

요약
왼쪽 위 칸에서 오른쪽 아래 칸까지 모든 의자 칸을 지나는 최단 경로 중 사전순으로 가장 앞선 R, D 이동 순서를 구하고, 없으면 Impossible을 출력합니다.
난이도

보통10점 중 5점

유형
정렬, 동적 계획법, 그리디
정답자
아직 제출이 없습니다

문제

오스타프와 키사는 의자 세일 현장에 있다. 두 사람에게는 해결할 문제가 두 가지 있다. 첫째, 라이벌 회사를 대표하는 아버지 테오도르가 바짝 쫓아오고 있어서 가능한 한 빨리 세일장을 떠나야 한다. 둘째, 세일장에 있는 의자를 모두 가져가야 한다.

세일장은 NN행 MM열의 직사각형 표이다. 일부 칸에는 회수해야 할 의자가 놓여 있다. 두 사람은 왼쪽 위 칸 (1,1)(1, 1)에서 출발하고, 출구는 오른쪽 아래 칸 (N,M)(N, M)에 있다. 한 번의 이동으로 현재 칸과 변을 맞댄 인접한 칸으로 옮겨갈 수 있다. 의자가 있는 칸을 지나가면 그 의자를 가져간다. 시작 칸에서 출구 칸까지의 최단 경로를 찾되, 그중에서 의자가 있는 모든 칸을 지나는 경로를 찾아라. 그런 경로가 없으면 그렇다고 판정한다.

입력

첫 줄에 표의 크기 NN, MM과 의자의 개수 KK가 정수 세 개로 주어진다 (2≤N,M≤1002 \le N, M \le 100, 0≤K≤10000 \le K \le 1000). 이어지는 KK개의 줄에는 각 의자가 있는 행 번호 XiX_i와 열 번호 YiY_i가 정수 두 개로 주어진다 (1≤Xi≤N1 \le X_i \le N, 1≤Yi≤M1 \le Y_i \le M). 한 칸에 의자가 두 개 놓이는 경우는 없다.

출력

최단 경로 중 어떤 경로로도 모든 의자를 모을 수 없다면 Impossible을 한 줄에 출력한다.

그렇지 않다면 이동 순서를 한 줄에 출력한다. 각 이동은 기호 하나로 나타낸다. R은 오른쪽으로 이동, D는 아래로 이동이다. 답이 여러 개이면 사전순으로 가장 앞선 것을 출력한다.

예제2

  1. 예제 1

    입력
    3 3 2
    1 2
    3 3
    
    예상 출력
    RDDR
    
  2. 예제 2

    입력
    3 3 2
    1 2
    2 1
    
    예상 출력
    Impossible