题目描述
给定一个字符串 $S$,我们先收集所有不同的 $S$ 子串,并将其放置在一个列表中。
所谓子串就是在 $S$ 中删除 $0$ 个或多个字符所获得的长度大于 $0$ 的字符串。
接下来,对所有子串按照长度为升序排序,若他们的长度相同,则按照字典序排序,并且规定大写字母在小写字母之前。这样共产生 $\text{TOTAL}$ 个排好序的不同的 $S$ 子串。
现在要求返回位置在 $k \bmod \text{TOTAL}$(从 $0$ 开始)的字符串,$\text{TOTAL}$ 即 $S$ 子串的个数。
输入格式
文件中有多组测试数据:
第一行,包含一个整数 $Num$ $(1 \le Num \le 10)$,表示测试数据的个数。
每组测试数据包含一个字符串 $S$ $(2 \le |S| \le 50)$ 和一个整数 $k$ $(0 \le k \le 2^63-1)$。
$S$ 仅由小写字母和大写字母组成。
输出格式
共 $Num$ 行,输出在排序后的列表中位于 $k \bmod \text{TOTAL}$ 位置的子串。
样例输入 #1
3
ABCD 15
ABCD 14
AbcdAbcdAbcd 39283423984923