#abc124d. [abc124_d]Handstand

[abc124_d]Handstand

问题描述

NN 个人从左到右排成一排。

给定长度为 NN 的字符串 SS,由 01 组成,并给定正整数 KK

如果第 ii 个人从左边起站立在地上时,字符串 SS 的第 ii 个字符是 0;如果该字符为 1,表示第 ii 个人站立在手上。

你可以给出最多 KK 次指令(也可以不给),每次指令如下:

指令:选择满足 1lrN1 \leq l \leq r \leq N 的整数 llrr,将第 ll(l+1)(l+1)......rr 个人翻转。即,对于每个 i=l,l+1,...,ri = l, l+1, ..., r,原本站在地上的第 ii 个人现在站在手上,原本站在手上的第 ii 个人现在站在地上。

请找出在至多 KK 次指令之后,连续站在手上的人数的最大可能值。

约束条件

  • NN 是一个整数,满足 1N1051 \leq N \leq 10^5
  • KK 是一个整数,满足 1K1051 \leq K \leq 10^5
  • 字符串 SS 的长度为 NN
  • 字符串 SS 的每个字符是 01

输入

输入以以下格式从标准输入给出:

NN KK SS

输出

打印在至多 KK 次指令之后,连续站在手上的人数的最大可能值。


示例输入 1

5 1
00010

示例输出 1

4

通过以下指令,我们可以使得连续四个人站在手上,这是最大的结果:

  • 给出指令 l=1,r=3l = 1, r = 3,翻转从左边起的第一个、第二个和第三个人。

示例输入 2

14 2
11101010110011

示例输出 2

8

示例输入 3

1 1
1

示例输出 3

1

不需要任何指令。