아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

사과 수집

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

요약
격자에서 (1,1)에서 (R,C)까지 가는 단조 경로를 사과 합계가 큰 순서, 합계가 같으면 이동 문자열이 사전순으로 작은 순서로 정렬했을 때 K번째 경로를 구한다.
난이도

보통10점 중 7점

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

문제

Santi는 RR개의 행(위에서 아래로)과 CC개의 열(왼쪽에서 오른쪽으로)로 이루어진 격자에서 게임을 한다. ii번째 행과 jj번째 열의 칸을 (i,j)(i, j)라고 하자. (i,j)(i, j) 칸에는 Ai,jA_{i,j}개의 사과가 있다.

Santi의 캐릭터 Nano는 처음에 (1,1)(1, 1) 칸에 있으며 (R,C)(R, C) 칸으로 이동하려고 한다. Nano는 매 턴마다 아래로 한 칸 또는 오른쪽으로 한 칸만 이동할 수 있고, 그렇게 해서 목표에 가까워진다. 목표까지 가는 Nano의 경로는 R+C−2R + C - 2개의 문자로 이루어진 문자열로 나타낼 수 있으며, 그중 R−1R - 1개는 ‘D’이고 C−1C - 1개는 ‘R’이다. ii번째 문자가 ‘D’이면 Nano는 ii번째 턴에 아래로 한 칸 이동하고, ii번째 문자가 ‘R’이면 오른쪽으로 한 칸 이동한다는 뜻이다.

두 경로는 문자열 표현이 다르면 서로 다른 경로이다. 서로 다른 경로는 (R+C−2R−1)R+C-2 \choose R-1개 있다. 경로 XX가 경로 YY보다 좋다는 것은 다음 중 하나가 성립한다는 뜻이다.

  • 경로 XX가 YY보다 사과를 많이 모은다. Nano가 경로에서 모으는 사과의 수는 (1,1)(1, 1) 칸과 (R,C)(R, C) 칸을 포함하여 경로가 지나는 칸에 있는 사과의 총합이다.
  • 경로 XX가 YY와 사과를 같은 개수만큼 모으고, XX의 문자열 표현이 YY의 문자열 표현보다 사전순으로 앞선다.

가장 좋은 경로를 찾는 것은 Santi에게 너무 지루하기 때문에, 대신 KK번째로 좋은 경로를 찾으려고 한다. 다시 말해, XX보다 좋은 경로가 K−1K - 1개 있고 XX보다 나쁜 경로가 (R+C−2R−1)−K{R+C-2 \choose R-1} - K개인 경로 XX를 찾으려고 한다.

예를 들어 R=2R = 2, C=3C = 3, K=3K = 3, A1,1..3={1,2,3}A_{1,1..3} = \{1, 2, 3\}, A2,1..3={2,2,3}A_{2,1..3} = \{2, 2, 3\}이라고 하자. 그러면 목표까지 가는 서로 다른 경로가 세 개 있고, 좋은 순서대로 나열하면 다음과 같다.

  1. 문자열 RRD로 나타내는 경로. 이 경로는 사과를 1+2+3+3=91 + 2 + 3 + 3 = 9개 모은다.
  2. 문자열 DRR로 나타내는 경로. 이 경로는 사과를 1+2+2+3=81 + 2 + 2 + 3 = 8개 모은다.
  3. 문자열 RDR로 나타내는 경로. 이 경로는 사과를 1+2+2+3=81 + 2 + 2 + 3 = 8개 모은다.

따라서 33번째로 좋은 경로는 문자열 RDR로 나타내는 경로이다.

입력

첫 줄에 세 정수 RR CC KK가 주어진다. (2≤R,C≤30;1≤K≤(R+C−2R−1)2 \le R, C \le 30; 1 \le K \le {R+C-2 \choose R-1}) 각각 행의 수, 열의 수, Santi가 찾으려는 경로의 순번이다. 다음 RR개의 줄에 각각 CC개의 정수가 주어지며, 각 칸에 있는 사과의 수를 나타낸다. ii번째 줄의 jj번째 정수는 Ai,jA_{i,j}이다. (0≤Ai,j≤2000 \le A_{i,j} \le 200)

출력

목표까지 가는 KK번째로 좋은 경로를 나타내는 문자열을 한 줄에 출력한다.

예제2

  1. 예제 1

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

    입력
    3 3 5
    1 1 1
    1 1 1
    1 1 1
    
    예상 출력
    RDRD