#3705. 钓鱼 (fish)

钓鱼 (fish)

时间限制:1000 ms;空间限制:256 MB。

题目描述

长老师很喜欢钓鱼,每天都会去钓鱼。但长老师并不擅长,所以一天最多只能钓上一条鱼(也有可能一条也钓不上来)。

长老师更喜欢吃鱼。如果一天吃到了至少一条鱼,长老师就会认为这是一个好日子。

钓上来的鱼不必在当天吃掉,它可以被存放kk天。也就是说,长老师若在第ii天钓上一条鱼,则可以在第i∼i+ki\sim i+k天这k+1k+1天中的任意一天将其吃掉。

现给出长老师在连续的nn天中的钓鱼情况。长老师希望拥有尽量长的一段日子,每天都吃至少一条鱼。所以,请回答在所有的吃鱼安排中,可能出现的最长的一段连续的好日子有多长。

输入格式

在文件 fish.in 中读入。

第一行两个整数 n,kn,k,nn 表示总天数,kk 表示一条鱼最多存放的天数。 第二行nn个整数a1∼ana_1\sim a_n,aia_i表示第ii天的钓鱼情况,若为11,表示第ii天钓到了一条鱼,若为00,则第ii天没有钓到鱼。

输出格式

在文件 fish.out 中输出。

一行一个整数,表示可能出现的最长一段连续的好日子的长度。

样例

样例输入 #1

3 1
1 0 1

样例输出 #1

2

样例 1 解释

将第一天钓上来的鱼存放一天,在第二天吃掉;第三天钓上的鱼当天吃掉。第二、三两天是连续的两个好日子。 故答案为22。

样例输入 #2

10 3
1 0 0 0 0 1 1 0 0 1

样例输出 #2

3

数据范围

本题共 2020 个测试点,每点 55 分。

  • 对于测试点1∼41\sim4:1≤n≤5000,k=01\le n\le 5000, k=0。
  • 对于测试点5∼125\sim 12:1≤n≤5000,0≤k≤n1\le n\le 5000,0\le k\le n。
  • 对于测试点13∼1613\sim 16:1≤n≤3×106,k=11\le n\le 3\times 10^6,k = 1。
  • 对于测试点17∼2017\sim20:1≤n≤3×106,0≤k≤n1\le n \le 3\times 10^6,0\le k\le n。
  • 对于所有测试点,ai∈{0,1}a_i\in \{0,1\}。