[Quảng Ninh - 23] Bánh mì và bánh rán
Mẹ của An đã lên kế hoạch ăn sáng bằng bánh mỳ hoặc bánh rán cho An trong n ngày (được đánh số từ 1 đến n). Mẹ của An viết một xâu s độ dài n,
trong đó kí tự i (1 ≤ i ≤ n) là '0' hoặc '1' biểu thị ngày thứ i sẽ ăn bánh mỳ hoặc bánh rán tương ứng.
An thích ăn bánh rán hơn bánh mỳ, nên anh ta muốn chọn một đoạn gồm k kí tự liên tiếp trong xâu s và thay đổi kí tự '0' trong đoạn thành '1'. Gọi time là số ngày liên tiếp dài nhất mà An ăn bánh rán. Hãy giúp An tìm giá trị time lớn nhất mà anh ta có thể đạt được bằng cách chọn một đoạn hợp lý.
Dữ liệu: vào từ file DONU.INP:
- Dòng đầu tiên chứa hai số nguyên dương n và k (1 ≤ k ≤ n ≤ 106).
- Dòng thứ hai chứa xâu s độ dài n, chỉ gồm các kí tự '0' và '1'.
Kết quả: ghi ra file DONU.OUT một số nguyên là giá trị time lớn nhất tìm được.
Ví dụ:
DONU.INP: 13 2 0 1 0 1 1 1 0 0 0 0 1 0 1 DONU.OUT: 5
DONU.INP: 6 3 1 0 0 0 0 1 DONU.OUT: 4
Giải thích:
- Trong ví dụ thứ nhất, An cần chọn một đoạn kí tự từ thứ 2 đến thứ 3 là '10', sau đó thay đổi kí tự thứ 3 trong s thành '1' và time là 5 ngày: từ ngày thứ 2 đến ngày thứ 6.
- Trong ví dụ thứ hai, An cần chọn một đoạn kí tự từ thứ 2 đến thứ 4 là '000', sau đó thay đổi tất cả kí tự trong đoạn này thành '0' và '1' và time là 4 ngày: từ ngày thứ 1 đến ngày thứ 4.
Giới hạn:
- Có 30% số test tương ứng với 30% số điểm thoả mãn 1 ≤ k ≤ n ≤ 102.
- Có 30% số test khác tương ứng với 30% số điểm thoả mãn 1 ≤ k ≤ n ≤ 103.
- Có 40% số test còn lại với 40% số điểm không có thêm ràng buộc nào.
Comments