/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 14ms 3.066 MiB
#2 Wrong Answer 37ms 4.258 MiB
#3 Wrong Answer 46ms 4.477 MiB

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