P9922 [POI 2023/2024 R1] CzatBBB

题目背景

译自 [XXXI Olimpiada Informatyczna - I etap](https://sio2.mimuw.edu.pl/c/oi31-1/dashboard/) [CzatBBB](https://sio2.mimuw.edu.pl/c/oi31-1/p/cza/)。

题目描述

给出一个 $n$ 个字母的字符串 $S$ 和一个参数 $k$,设 $R$ 为字符串 $S$ 的后 $k$ 个字母形成的字串。 假设字符串 $S'$ 为 $S$ 添加一个新字母生成的新字符串。 添加的规则如下所示: 对于字母 $X$ 字母,计算它在字符串 $S$ 中紧接着 $R$ 出现的次数。出现频率最高的字母为新添加的字母,如果有多个出现频率最高的字母,取最小的一个。如果 $R$ 在字符串 $S$ 中的其他地方都没有出现,则取 $X = a$。最后,我们扩展字符串 $S$,在其末尾添加字母 $X$。 例如,设 $S = \text{abaaabababa}$,$k = 3$ 则 $R$ 与后一个字母一起出现的字串为的:$\text{abaa}$、$\text{abab}$、$\text{abab}$。它最常与字母 $\text{b}$ 一起出现,因此我们在 $S$ 中加上 $\text{b}$,生成 $S' = \text{abaaabababab}$。 现在 $S' = \text{abaaabababab}$,$R = \text{bab}$,$R$ 与后一个字母一起出现的字串为:$\text{baba}$、$\text{baba}$,如 $\text{baba}$、$\text{baba}$,因此我们在 $S'$ 后面加上 $a$。 以此类推,这样的操作会进行无数次。 你的任务是编写一个程序,输出新字符串最后 $a$ 至 $b$ 个字符。

输入格式

第一行输入包含四个整数 $n$、$k$、$a$ 和 $b$。 第二行输入包含一个 $n$ 个字母的字符串,由小写英文字母组成的 $n$ 个字母字符串,表示单词 $S$。

输出格式

输出字符串 $S'$ 的第 $a$ 个字符 至第 $b$ 个字符,表示扩展单词 $S'$ 中位于以下位置的字母。

说明/提示

对于所有的数据,$2\leq n\leq10^6$,$1\leq k