A-路灯维修(lamp)

题目背景

城市管理中心正在检查一条笔直道路上的路灯工作情况。

这条道路上共有 nn 盏路灯,从左到右编号为 11nn。 每盏路灯当前只有两种状态:

  • 1 表示这盏灯是亮的;
  • 0 表示这盏灯是坏的。

为了让夜间道路尽可能明亮,维修队最多可以修好 kk 盏坏灯。你的任务是计算: 经过最多 kk 次维修后,最长连续亮灯段的长度是多少。

题目描述

给定一个长度为 nn 的仅由 01 组成的字符串 ss,其中:

  • si=1s_i=1 表示第 ii 盏路灯是亮的;
  • si=0s_i=0 表示第 ii 盏路灯是坏的。

你最多可以把其中 kk0 改成 1

请输出修改后,字符串中最长连续 1 子串的最大长度。

输入格式

第一行输入两个整数 n,kn,k,分别表示路灯数量和最多可维修的坏灯数量。

第二行输入一个长度为 nn 的字符串 ss,只包含字符 01

输出格式

输出一个整数,表示最多维修 kk 盏坏灯后,最长连续亮灯段的最大长度。

输入输出样例

输入 #1

10 2
1100010111

输出 #1

6

样例解释

原串为:

1100010111

我们最多可以修好 22 盏坏灯。

观察区间第 55 盏到第 1010 盏路灯,对应子串为: 010111 ,这个区间中恰好有 220,因此可以把这两个坏灯全部修好,变成: 111111 ,于是可以得到一段长度为 66 的连续亮灯段。

数据范围

对于所有测试数据,保证:$1 \le n \le 2 \times 10^5,\quad 0 \le k \le n,\quad s_i \in {0,1}$

本题共设 2020 个测试点,各测试点满足的限制如下:

测试点编号 分值 nn kk 特殊性质
1\text{1} 55 =1=1 =0=0 无特殊性质
2\text{2} 10\le 10 AA
3\text{3} n\le n 无特殊性质
4\text{4} 20\le 20 BB
5\text{5} CC
6\text{6} 100\le 100 =1=1 DD
7\text{7} 2\le 2 EE
8\text{8} n\le n FF
9\text{9} 1000\le 1000 =0=0 AA
10\text{10} 5\le 5 无特殊性质
11\text{11} n\le n
12\text{12} 5000\le 5000
13\text{13} 104\le 10^4 =1=1 DD
14\text{14} 2×104\le 2 \times 10^4 10\le 10 无特殊性质
15\text{15} 5×104\le 5 \times 10^4 n\le n FF
16\text{16} 105\le 10^5 BB
17\text{17} CC
18\text{18} 1.5×105\le 1.5 \times 10^5 =n=n GG
19\text{19} 2×105\le 2 \times 10^5 =0=0=n=n AAGG
20\text{20} n\le n 无特殊性质

特殊性质 AA:保证 k=0k=0

特殊性质 BB:保证字符串 ss 中所有字符均为 1

特殊性质 CC:保证字符串 ss 中所有字符均为 0

特殊性质 DD:保证 k=1k=1

特殊性质 EE:保证 0k20 \le k \le 2

特殊性质 FF:保证字符串 ss 呈交替形式,即对任意 1i<n1 \le i < n,都有 sisi+1s_i \ne s_{i+1}

特殊性质 GG:保证 k=nk=n

相关

在下列比赛中:

「果壳杯」 ROUND 44 (Div. 4)