100 atcoder#ABC124D. [ABC124D] Handstand

[ABC124D] Handstand

配点 : 400400

問題文

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

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

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

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

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

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

制約

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

入力

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

NN KK

SS

出力

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

5 1
00010
4

以下のように指示を行えば逆立ちした人を連続して 44 人並ばせることができ、これが最大です。

  • l=1,r=3l = 1, r = 3 として指示を行う。その結果、左から 1,2,31, 2, 3 番目の人の状態が反転する。
14 2
11101010110011
8
1 1
1
1

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