1 条题解

  • 0
    @ 2024-9-8 20:02:23

    AC代码:

    #include<bits/stdc++.h>
    using namespace std;
    
    int n,a[1000],b[100005],k,t,x,maxx=-1,sum;
    int main()
    {
    	cin>>n>>k;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i];
    		if(a[i]==0)
    		{
    			b[i]=b[i-1]+1;
    		}
    		else
    		{
    			b[i]=b[i-1];
    		}
    		
    	}
    	for(int i=1,j=1;j<=n;)	
    	{
    		if(b[j]-b[i-1]<=k)
    		{
    			sum=j-i+1;
    			if(sum>maxx)
    			{
    				maxx=sum;
    			}
    			j++;
    		}
    		else
    		{
    			i++;
    		}
    	}
    	cout<<maxx;
    }
    

    然后,你错了,真正的AC代码在这:

    #include<bits/stdc++.h>
    using namespace std;
    
    int n,a[100005],b[100005],k,t,x,maxx=-1,sum;
    int main()
    {
    	cin>>n>>k;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i];
    		if(a[i]==0)
    		{
    			b[i]=b[i-1]+1;
    		}
    		else
    		{
    			b[i]=b[i-1];
    		}
    		
    	}
    	for(int i=1,j=1;j<=n;)	
    	{
    		if(b[j]-b[i-1]<=k)
    		{
    			sum=j-i+1;
    			if(sum>maxx)
    			{
    				maxx=sum;
    			}
    			j++;
    		}
    		else
    		{
    			i++;
    		}
    	}
    	cout<<maxx;
    }
    
    
    • 1

    信息

    ID
    2623
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    (无)
    递交数
    97
    已通过
    29
    上传者