#CTR0002. 江月诗的区间计数

江月诗的区间计数

题目背景

江月诗(jiangys)是 XXXX 大学 XCPC 集训队的主力队员,舒妤是江月诗的同学,两人常一起讨论算法题。某天舒妤在练习区间统计类题目时遇到瓶颈,找到江月诗请教。

舒妤指着屏幕:“月诗,这道区间计数题我总超时,你帮我看看思路哪里有问题?题目是找包含特定字符的子区间,数据量一大就卡壳。”

江月诗接过题面,指着关键条件:“这题可以用滑动窗口,再结合数组计数,时间复杂度能降到 O(n)\mathcal{O}(n),你试试按这个方向想?”

PS:本题就是一个变式。

题目描述

给定一个长度为 nn 的字符串 ss(仅包含 abc 三种字符),请统计所有满足以下条件的子区间 [l,r][l,r](连续子串)的数量:

  1. 子区间内至少包含 11 a11 b11 c(顺序不限)。
  2. 子区间的长度不超过 kk (若 k=0k=0 则无长度限制)。

输入格式

第一行输入两个整数 nnkk1n1051 \leq n \leq 10^50kn0 \leq k \leq n)。

第二行输入字符串 ss(长度为 nn)。

输出格式

一行一个整数表示满足条件的区间个数。

输入样例

7 5
abcabca

输出样例

12

说明/提示

【样例解释】

合法子区间需包含 abc 各至少 11 个,且长度 5\leq 5

满足条件的区间有:[1,3][1,3][1,4][1,4][1,5][1,5][2,4][2,4][2,5][2,5][2,6][2,6][3,5][3,5][3,6][3,6][3,7][3,7][4,6][4,6][4,7][4,7][5,7][5,7]