Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 400 点
問題文
N 人の人が左右一列に並んでいます。
0
, 1
からなる長さ N の文字列 S と正整数 K が与えられます。
左から i 番目の人は、S の i 文字目が 0
のとき直立し、1
のとき逆立ちしています。
あなたは K 回まで以下の指示を行います。一度も行わなくても構いません。
指示: 1 \leq l \leq r \leq N を満たす整数 l, r を選ぶ。左から l, l+1, ..., r 番目の人の状態を反転する。すなわち、i = l, l+1, ..., r について、左から i 番目の人は直立していれば逆立ちし、逆立ちしていれば直立する。
K 回までの指示で、逆立ちした人を連続で最大何人並ばせることができるか求めてください。
制約
- N は 1 \leq N \leq 10^5 を満たす整数である。
- K は 1 \leq K \leq 10^5 を満たす整数である。
- 文字列 S の長さは N である。
- 文字列 S の各文字は
0
または1
である。
入力
入力は以下の形式で標準入力から与えられる。
N K S
出力
K 回までの指示で、逆立ちした人を連続で最大何人並ばせることができるか出力せよ。
入力例 1
5 1 00010
出力例 1
4
以下のように指示を行えば逆立ちした人を連続して 4 人並ばせることができ、これが最大です。
- l = 1, r = 3 として指示を行う。その結果、左から 1, 2, 3 番目の人の状態が反転する。
入力例 2
14 2 11101010110011
出力例 2
8
入力例 3
1 1 1
出力例 3
1
一度も指示を行う必要はありません。
Score : 400 points
Problem Statement
N people are arranged in a row from left to right.
You are given a string S of length N consisting of 0
and 1
, and a positive integer K.
The i-th person from the left is standing on feet if the i-th character of S is 0
, and standing on hands if that character is 1
.
You will give the following direction at most K times (possibly zero):
Direction: Choose integers l and r satisfying 1 \leq l \leq r \leq N, and flip the l-th, (l+1)-th, ..., and r-th persons. That is, for each i = l, l+1, ..., r, the i-th person from the left now stands on hands if he/she was standing on feet, and stands on feet if he/she was standing on hands.
Find the maximum possible number of consecutive people standing on hands after at most K directions.
Constraints
- N is an integer satisfying 1 \leq N \leq 10^5.
- K is an integer satisfying 1 \leq K \leq 10^5.
- The length of the string S is N.
- Each character of the string S is
0
or1
.
Input
Input is given from Standard Input in the following format:
N K S
Output
Print the maximum possible number of consecutive people standing on hands after at most K directions.
Sample Input 1
5 1 00010
Sample Output 1
4
We can have four consecutive people standing on hands, which is the maximum result, by giving the following direction:
- Give the direction with l = 1, r = 3, which flips the first, second and third persons from the left.
Sample Input 2
14 2 11101010110011
Sample Output 2
8
Sample Input 3
1 1 1
Sample Output 3
1
No directions are necessary.