3 solutions

  • 0
    @ 2026-4-18 20:31:12
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1010,M=40;
    int n,m,a[N],f[N][M],ans;
    int main() 
    { 
    	cin>>n>>m;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i];
    		a[i]%=2;
    	}
    	for(int j=0;j<=m;j++)
    	{
    		for(int i=1;i<=n;i++)
    		{
    			if(j)
    			{
    				f[i][j]=max(f[i-1][j]+(j%2!=a[i]),f[i-1][j-1]+(j%2==a[i]));
    			}
    			else
    			{
    				f[i][j]=f[i-1][j]+(j%2!=a[i]);
    			}
    		}
    	}
    	for(int i=0;i<=m;i++)
    	{
    		ans=max(ans,f[n][i]);
    	}
    	cout<<ans;
    	return 0;
    }
    

    Information

    ID
    3038
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    9
    Tags
    (None)
    # Submissions
    14
    Accepted
    4
    Uploaded By