#include <bits/stdc++.h> using namespace std; const long long maxn=200010; long long n,k; int a[maxn]; int chack(long long m){ long long mm=0,num=0; for(int i=1;i<=m;++i){ if(a[i]) mm++; else num++; } long long s=min(mm,num); if(s<=k)return 1; s=0; for(int i=m+1;i<=n;++i){ if(a[i]){mm++;} else{num++;} if(a[i-m]){ mm--;} else{ num--;} s=min(mm,num); if(s<=k)return 1; } return 0; } int main() { scanf("%lld%lld",&n,&k); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } long long l=1; long long r=n; long long mid=0; while(l<r){ mid=(l+r+1)>>1; if(chack(mid)==1){ l=mid; } else r=mid-1; } printf("%lld\n",l); return 0; }
全部评论
(0) 回帖