T573217 「FAOI-R1」小 L 买彩票

题目描述

**警告:本题数据中,第一行后的换行符是 Windows CRLF,第二行后无换行符。** ------------ 有一种彩票,它每期开出 $26$ 个大写字母中的一个作为中奖号码。开奖方式如下: 1. 生成一个恰好含有 $p$ 个大写字母的字符串 $P$; 2. 生成一个二元组 $(l,r)$,其中 $1 \le l,r \le p$ 且 $l,r$ 为整数; 3. 如果 $l>r$,跳至第 $5$ 步; 4. 截取 $P$ 的第 $l$ 至 $r$ 个字母,然后跳至第 $6$ 步; 5. 截取 $P$ 的第 $l$ 至 $p$ 个字母和第 $1$ 至 $r$ 个字母; 6. 如果截取的字母个数不足 $k$ 个,跳至第 $2$ 步; 7. 将截取的所有字母按 $\texttt{A}$ 至 $\texttt{Z}$ 排序; 8. 取出第 $k$ 个字母,作为中奖号码。 **从第 $6$ 步跳至第 $2$ 步时,二元组 $(l,r)$ 将重新生成,字母也将重新截取,但字符串 $P$ 不变。** 一天,小 L 和小 M 去买这种彩票了,以此来比谁运气好。小 L 希望自己能完胜小 M。 于是,他~~费尽心机~~,最终得到了这期生成的 $P$ 和 $k$,但他没得到这期生成的二元组 $(l,r)$。 因此,他想问你:对于**每个字母**,有多少个二元组 $(l,r)$ 可以使这个字母成为中奖号码?

输入格式

两行。 第一行,两个正整数,$p,k$。 第二行,一个仅含大写字母的字符串 $P$。

输出格式

$26$ 行,依次输出使 $\texttt{A}$ 至 $\texttt{Z}$ 成为中奖号码的二元组 $(l,r)$ 的个数。**样例中括号内容仅供阅读方便,无需输出。**

说明/提示

样例 $1$ 解释: | $(l,r)$ | 截取的字母 | 中奖号码 | | :----------: | :----------: | :----------: | | $(1,3)$ | $\texttt{AFO}$ | $\texttt{O}$ | | $(2,4)$ | $\texttt{AIO}$ | $\texttt{O}$ | | $(3,1)$ | $\texttt{FIO}$ | $\texttt{O}$ | | $(4,2)$ | $\texttt{AFI}$ | $\texttt{I}$ | | $(1,4)$ | $\texttt{AFIO}$ | $\texttt{I}$ | | $(2,1)$ | $\texttt{AFIO}$ | $\texttt{I}$ | | $(3,2)$ | $\texttt{AFIO}$ | $\texttt{I}$ | | $(4,3)$ | $\texttt{AFIO}$ | $\texttt{I}$ | ---------- **本题采用捆绑测试。** | Subtask 编号 | $p \le$ | 分值 | | :-: | :-: | :-: | | $0$ | $10^2$ | $40$ | | $1$ | $10^5$ | $30$ | | $2$ | $10^6$ | $30$ | 对于 $100\%$ 的数据,$1 \le k \le p \le 10^6$。 ------------ > **提示:** 十年 OI 一场空,不开 `long long/int64` 见祖宗!