#3576. 第 k 个子串

第 k 个子串

题目描述

某天的信息技术课上,Anna 和 Maria 学到了字典序。

若字符串 xx 是字符串 yy 的前缀(且 x≠yx \ne y),或存在某个 ii(1≤i≤min⁡(∣x∣,∣y∣)1 \le i \le \min(|x|, |y|))使得 xi<yix_i \lt y_i,且对所有 jj(1≤j<i1 \le j \lt i)有 xj=yjx_j = y_j,则称字符串 xx 字典序小于字符串 yy。其中 ∣a∣|a| 表示字符串 aa 的长度。字符串的字典序比较在现代编程语言中由 < 运算符实现。

老师给 Anna 和 Maria 布置了作业:给她们一个长度为 nn 的字符串。她们要写出该字符串的所有子串(包括整个原串),相同的子串也要重复写出(例如,从字符串 "aab" 中应写出:"a"、"a"、"aa"、"ab"、"aab"、"b")。然后把得到的字符串按字典序排序。狡猾的老师不想检查这么多字符串,于是只要求找出列表中第 kk 个字符串。请帮 Anna 和 Maria 完成作业。

输入格式

第一行包含一个非空字符串,只由小写拉丁字母("a"-"z")组成,长度不超过 10510^5。第二行只包含一个整数 kk(1≤k≤1051 \le k \le 10^5)。

输出格式

输出 Anna 和 Maria 需要的字符串——给定字符串按字典序排序后的第 kk 个子串。若子串总数少于 kk,输出一行 "No such line."(不含引号)。

aa
2
a
abc
5
bc
abab
7
b

说明/提示

第二组样例中,排在字符串 "bc" 之前的有 "a"、"ab"、"abc"、"b"。