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

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

숫자 나열

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

요약
n부터 m까지의 정수를 이어 붙여 만든 자릿수 문자열을 내림차순으로 정렬한 뒤, k번째 자리에 오는 숫자를 구하고 문자열이 더 짧으면 NAV를 출력한다.
난이도

보통10점 중 6점

유형
수학, 구현, 이분 탐색, 누적 합
정답자
아직 제출이 없습니다

문제

nn부터 mm까지의 모든 자연수를 (양 끝 포함) 구분 기호 없이 차례로 이어 써서 십진수 숫자들의 열을 만듭니다.

예를 들어 n=98n = 98, m=102m = 102이면 이 열은 9899100101102가 됩니다.

그다음 모든 숫자(자리)를 내림차순으로 정렬합니다. 즉 가장 큰 숫자부터 그다음 큰 숫자 순서로 나열합니다.

위 예시에서 정렬된 열은 9998211110000입니다.

자연수 nn, mm, kk가 주어질 때, 정렬된 열의 kk번째 위치에 있는 숫자를 구하세요.

입력

세 자연수 nn, mm, kk가 공백으로 구분되어 주어집니다. (0<n<1090 < n < 10^9, 0<m<1090 < m < 10^9, m≥nm \ge n, 0<k<1090 < k < 10^9)

출력

정렬된 열의 kk번째 위치에 있는 숫자를 출력합니다. 만약 열의 길이가 kk보다 작으면 NAV를 출력합니다.

예제4

  1. 예제 1

    입력
    98 102 4
    
    예상 출력
    8
    
  2. 예제 2

    입력
    9999 9999 5
    
    예상 출력
    NAV
    
  3. 예제 3

    입력
    1 9 1
    
    예상 출력
    9
    
  4. 예제 4

    입력
    1 10 11
    
    예상 출력
    0