#P0848. 合格训练周期

合格训练周期

题目描述

训练营每天都会记录一名同学的打卡情况。

一共有 n 天,每天的记录用一个字符表示:

  • T 表示当天训练;
  • R 表示当天休息。

老师想从这 n 天中选出一段连续的日期,作为一次“训练周期”。

如果这段训练周期中,休息日数量不超过 k 天,那么老师认为这段训练周期是合格的。

请你统计,一共有多少个合格的训练周期。

输入格式

第一行输入两个整数 n 和 k,表示天数和最多允许的休息日数量。

第二行输入一个长度为 n 的字符串 s,只包含字符 T 和 R。

输出格式

输出一行,一个整数,表示合格训练周期的数量。

样例

5 1
TRTRT
11

样例说明

字符串 TRTRT 的位置编号为 1 到 5。

当最多允许 1 个休息日时,合格区间如下:

  • 从第 1 天开始:[1,1]、[1,2]、[1,3],共 3 段;
  • 从第 2 天开始:[2,2]、[2,3],共 2 段;
  • 从第 3 天开始:[3,3]、[3,4]、[3,5],共 3 段;
  • 从第 4 天开始:[4,4]、[4,5],共 2 段;
  • 从第 5 天开始:[5,5],共 1 段。

所以答案为:

3 + 2 + 3 + 2 + 1 = 11

例如区间 [1,4] 对应 TRTR,其中有 2 个休息日,超过 k = 1,因此不合格。

数据范围

  • 1 <= n <= 3000
  • 0 <= k <= n
  • s 只包含字符 T 和 R