#刚入场萌新求大佬们d一下bug
查看原帖
#刚入场萌新求大佬们d一下bug
283734
a1157996973楼主2020/7/11 12:29
#include<stdio.h>


int main ()

{
	int len,n;
	
	scanf("%d%d",&len,&n);
	int sum[len],tt=0;
	int aa[len];
	for(int i=0;i<len;i++)
	{
		scanf("%d",&aa[i]);
		tt+=aa[i];
		sum[i]=tt;
	}
	
	if(len==1)
	{
		printf("%d\n",1);
		printf("%d\n",sum[0]);
	}
	else
	{
	int l=0,r=0,max=0,lift=0,right=0;
	while(r<len)
	{//长度—1的个数=0的个数>可交换数量
		if((r-l+1)-(sum[r]-sum[l]+aa[l])>n)
		{l++;
		if(l>r)
		r=l;
		}
		else
		{
		    
		    if(max<(r-l+1))
		    {
		    	max=(r-l+1);
		    	right=r;
		    	lift=l;
		    	
			}
            //右标右移
			r++;
		}
	}
    //控制输出格式
	printf("%d\n",max);
	for(int i=0;i<len;i++)
	if(i==len-1)
	printf("%d",aa[i]);
	else
	{
	
	if(i>=lift&&i<=right)
	printf("%d ",1);
	else
	printf("%d ",aa[i]);
	}
}	
} 
2020/7/11 12:29
加载中...