100 atcoder#ABC124D. [ABC124D] Handstand

[ABC124D] Handstand

题目描述

N N 人の人が左右一列に並んでいます。

0, 1 からなる長さ N N の文字列 S S と正整数 K K が与えられます。

左から i i 番目の人は、S S i i 文字目が 0 のとき直立し、1 のとき逆立ちしています。

あなたは K K 回まで以下の指示を行います。一度も行わなくても構いません。

指示: 1  l  r  N 1\ \leq\ l\ \leq\ r\ \leq\ N を満たす整数 l, r l,\ r を選ぶ。左から l, l+1, ..., r l,\ l+1,\ ...,\ r 番目の人の状態を反転する。すなわち、i = l, l+1, ..., r i\ =\ l,\ l+1,\ ...,\ r について、左から i i 番目の人は直立していれば逆立ちし、逆立ちしていれば直立する。

K K 回までの指示で、逆立ちした人を連続で最大何人並ばせることができるか求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N K K S S

输出格式

K K 回までの指示で、逆立ちした人を連続で最大何人並ばせることができるか出力せよ。

题目大意

题目描述

有一个长为 nn 的字符串 ss,只含 0011
你可以进行最多 kk 次如下操作(00 次也可以):

  • 选择字符串 ss 的一个子串,将其中的字符反转(00 变成 1111 变成 00)。

进行不超过 kk 次操作后,求最长的连续的 11 的长度。

输入格式

第一行,22 个正整数 n,kn,k
第二行,字符串 ss

输出格式

输出不超过 kk 次操作后,最长的连续的 11 的长度。

数据约定

对于 100%100\% 的数据:1n,k1051 \le n, k \le 10^5
字符串 ss 只由 0011 组成,长度为 nn

5 1
00010
4
14 2
11101010110011
8
1 1
1
1

提示

制約

  • N N 1  N  105 1\ \leq\ N\ \leq\ 10^5 を満たす整数である。
  • K K 1  K  105 1\ \leq\ K\ \leq\ 10^5 を満たす整数である。
  • 文字列 S S の長さは N N である。
  • 文字列 S S の各文字は 0 または 1 である。

Sample Explanation 1

以下のように指示を行えば逆立ちした人を連続して 4 4 人並ばせることができ、これが最大です。 - l = 1, r = 3 l\ =\ 1,\ r\ =\ 3 として指示を行う。その結果、左から 1, 2, 3 1,\ 2,\ 3 番目の人の状態が反転する。

Sample Explanation 3

一度も指示を行う必要はありません。