链接
直接尺取就好了
#include <bits/stdc++.h>
#define sc scanf
#define pr printf
const int N = 900010;
using namespace std;
char str[N]; int s[N];
int main()
{
int n , k ,i , j;
sc("%d %d",&n , &k);
getchar();
gets(str);
int len = strlen(str);
for(i=0 , j=0; i<len; i++)
{
if(str[i] != ' ')
s[++j] = str[i] - '0';
}
len = j;
int head = 1 , tail = 0 , ans = 0;
while(tail < len && k >= 0)
{
if(s[++tail] == 0)
{
if(k == 0)
{
--tail; break;
}
--k;
}
}
ans = tail;
for( ; tail < len; )
{
if(s[++tail] == 0)
{
while(s[head] == 1 && head < tail)
head++;
head++;
}
ans = max(ans,tail-head+1);
}
// pr("tail = %d\n",tail);
pr("%d\n",ans);
return 0;
}