Wrong Answer
Code
import sys
def main():
input = sys.stdin.read().split()
idx = 0
T = int(input[idx])
idx += 1
for _ in range(T):
N, K = int(input[idx]), int(input[idx+1])
idx += 2
S = input[idx]
idx += 1
if '1' not in S:
print(0)
continue
runs = []
prev = S[0]
count = 1
for c in S[1:]:
if c == prev:
count += 1
else:
runs.append((prev, count))
prev = c
count = 1
runs.append((prev, count))
ones = []
for char, length in runs:
if char == '1':
ones.append(length)
if not ones:
print(0)
continue
if K == 0:
print(max(ones))
continue
B = len(ones) - 1
if K >= B:
print(sum(ones))
else:
max_sum = sum(ones[:K+1])
current_sum = max_sum
for i in range(K+1, len(ones)):
current_sum += ones[i] - ones[i - (K+1)]
if current_sum > max_sum:
max_sum = current_sum
print(max_sum)
if __name__ == '__main__':
main()
Information
- Submit By
- Type
- Submission
- Problem
- P1159 Binary String
- Contest
- Brain Booster #8
- Language
- Python 3 (Python 3.12.3)
- Submit At
- 2025-02-17 16:13:26
- Judged At
- 2025-02-17 16:13:26
- Judged By
- Score
- 0
- Total Time
- 46ms
- Peak Memory
- 4.477 MiB