#include
using namespace std;
static int i=0,j=0,r=0,t=0;
int sub(int a[],int n,int k){
int ans=1,zero=0;
while(i<n){
if(a[i]==0){
zero+=1;
}
if(zero > k){
if(a[j]==1){
while(a[j]!=0)
j++;
}
zero–;
j++;
}
// ans=max(ans,(i-j+1));
if((i-j+1)>ans){
ans=i-j+1;
r=i;
t=j;
}
i++;
}
return ans;
}
int main() {
int n,k;
cin>>n>>k;
int a[n];
for(int i=0;i<n;i++)
cin>>a[i];
cout<<sub(a,n,k);
i–;
cout<<endl;
for(int l=0;l<n;l++){
if(l<=r && l>=t){
cout<<1<<" “;
}
else
cout<<a[l]<<” ";
}
return 0;
}
1 count ...why this isnt passing some test cases
@pearlgupta2000
Keep in mind values should be changes only when we find a better best.
Here I am attaching code for reference