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` 见祖宗!