#ATarc097a. [ABC097C] K-th Substring

[ABC097C] K-th Substring

题目描述

给定一个字符串 ss。请输出 ss 的所有不同的子串中,按字典序排列的第 KK 小的子串。

这里,ss 的子串指的是从 ss 中取出的非空连续部分组成的字符串。例如,若 s=ababcs = \texttt{ababc},则 a\texttt{a}bab\texttt{bab}ababc\texttt{ababc} 都是 ss 的子串,而 ac\texttt{ac}z\texttt{z}、空字符串都不是 ss 的子串。不同的子串是指作为字符串内容不同。

此外,设 X=x1x2...xnX = x_1x_2...x_nY=y1y2...ymY = y_1y_2...y_m 是两个不同的字符串。当 YYXX 的前缀,或者存在最小的整数 jj 使得 xjyjx_j \neq y_jxj>yjx_j > y_j 时,只有在这种情况下才认为 XX 的字典序大于 YY

输入格式

输入从标准输入中给出,格式如下:

ss KK

输出格式

请输出 ss 的所有不同子串中,按字典序排列的第 KK 小的子串。

样例 1

输入

aba
4

输出

b

样例 2

输入

atcoderandatcodeer
5

输出

andat

样例 3

输入

z
1

输出

z

说明/提示

限制条件

  • 1s50001 \leq |s| \leq 5000
  • ss 仅由小写英文字母组成
  • 1K51 \leq K \leq 5
  • ss 至少有 KK 个不同的子串

部分得分

  • 若能正确解决 s50|s| \leq 50 的数据集,可获得部分分 200200 分。

样例说明 1

ss 的子串有 a\texttt{a}b\texttt{b}ab\texttt{ab}ba\texttt{ba}aba\texttt{aba}55 个。请输出其中按字典序排列第 44 小的 b\texttt{b}。注意不要重复计数 a\texttt{a}

由 ChatGPT 4.1 翻译