만드는 중입니다

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

K번째 부분 문자열

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

요약
S의 모든 부분 문자열을 사전순으로 정렬한 뒤 K번째 부분 문자열을 출력하고, K개보다 적으면 -1을 출력한다.
난이도

보통10점 중 7점

유형
문자열, 정렬, 이분 탐색
정답자
아직 제출이 없습니다

문제

문자열 SS의 부분 문자열은 SS에서 연속한 구간을 하나 잘라낸 문자열이다. 잘라낸 구간이 다르면 내용이 같아도 서로 다른 부분 문자열로 세므로, 길이가 nn인 문자열의 부분 문자열은 모두 n(n+1)2\frac{n(n+1)}{2}개이다.

SS의 모든 부분 문자열을 사전 순으로 정렬했을 때 KK번째에 오는 문자열을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 문자열 SS가 주어진다. SS는 알파벳 소문자로만 이루어져 있고, 길이는 11 이상 100,000100{,}000 이하이다.

둘째 줄에 정수 KK가 주어진다. (1≤K≤100,0001 \le K \le 100{,}000)

출력

첫째 줄에 SS의 부분 문자열 중 사전 순으로 KK번째인 것을 출력한다. 부분 문자열의 개수가 KK보다 작으면 −1-1을 출력한다.

예제3

  1. 예제 1

    입력
    aa
    2
    
    예상 출력
    a
    
  2. 예제 2

    입력
    abc
    5
    
    예상 출력
    bc
    
  3. 예제 3

    입력
    abab
    7
    
    예상 출력
    b