#abc468b. Corridor Watch

Corridor Watch

题目描述

给定整数 MMDD,以及一个由 G. 组成的长度为 MM 的字符串 SS

MM 个格子从左到右排成一行,编号依次为 11MM

有些格子上站着警卫:若 Si=S_i = G,则第 ii 个格子上站着警卫;若 Si=S_i = .,则该格子上没有人。

与某个站着警卫的格子距离不超过 DD 的格子会被监视。 也就是说,格子 xx 被监视当且仅当存在某个 ii 满足 Si=S_i = GxiD|x - i| \le D

请求出 MM 个格子中没有被监视的格子个数。

输入格式

M D
S

输出格式

输出没有被监视的格子个数。

输入示例 1

7 1
.G...GG

输出示例 1

1

示例 1 说明

警卫在第 226677 格。D=1D = 1,所以:

  • 22 格的警卫监视 1,2,31, 2, 3
  • 66 格的警卫监视 5,6,75, 6, 7
  • 77 格的警卫监视 6,76, 7(第 88 格不存在)。

被监视的是 {1,2,3,5,6,7}\{1,2,3,5,6,7\},只有第 44 格没被监视,答案为 11

输入示例 2

6 5
......

输出示例 2

6

示例 2 说明

一个警卫都没有,所以全部 66 个格子都没被监视。

输入示例 3

21 2
....G...GG.....G.....

输出示例 3

6

示例 3 说明

警卫在第 559910101616 格,D=2D = 2。被监视的区间分别是 [3,7][3,7][7,11][7,11][8,12][8,12][14,18][14,18],合起来是 {3,,12}{14,,18}\{3,\ldots,12\} \cup \{14,\ldots,18\}1515 格,剩下 2115=621 - 15 = 6 格没被监视。

约束条件

  • 0D<M1000 \le D < M \le 100
  • DDMM 是整数
  • SS 是由 G. 组成的长度为 MM 的字符串