atcoder#ARC097A. [ABC097C] K-th Substring

[ABC097C] K-th Substring

配点 : 300300

問題文

文字列 ss が与えられます。 ss異なる substring のうち、辞書順で KK 番目に小さいものを出力してください。

ただし、ss の substring とは、 ss の空でない連続した部分を取り出してできる文字列とします。 例えば、 ss == ababc とすると、 a, bab, ababcss の substring ですが、 ac, z, 空文字列 は ss の substring ではありません。 また、substring が異なるとは、文字列として異なることを指します。

なお、X=x1x2...xn,X = x_{1}x_{2}...x_{n}, Y=y1y2...ymY = y_{1}y_{2}...y_{m} を二つの異なる文字列とするとき、YYXX の接頭辞であるか、jjxjyjx_{j} \neq y_{j} であるような最小の整数として xj>yjx_{j} > y_{j} である場合、そしてその場合に限って XXYY より辞書順で大きいといいます。

制約

  • 11 \leq s|s| \leq 50005000
  • ss は英小文字からなる
  • 11 \leq KK \leq 55
  • ss は異なる substring を KK 個以上持つ

部分点

  • s|s| \leq 5050 を満たすデータセットに正解した場合は、部分点として 200200 点が与えられる。

入力

入力は以下の形式で標準入力から与えられる。

ss

KK

出力

辞書順で KK 番目に小さい ss の substring を出力せよ。

aba
4
b

ss の substring は a, b, ab, ba, aba55 つです。 このうち 44 番目に小さい b を出力してください。 a22 回カウントしないことに注意してください。

atcoderandatcodeer
5
andat
z
1
z