Submission #1319326

#TimeUsernameProblemLanguageResultExecution timeMemory
1319326simona1230Feast (NOI19_feast)C++20
41 / 100
31 ms59212 KiB
#include <bits/stdc++.h>

using namespace std;
long long n,k,a[200001];
long long dp[2001][2001][2];
void read()
{
    cin>>n>>k;
    for(long long i=1;i<=n;i++)
        cin>>a[i];
}

void solve()
{
    for(long long i=0;i<=n;i++)
    {
        for(long long j=0;j<=k;j++)
        {
            dp[i][j][0]=dp[i][j][1]=-1e18;
        }
    }

    dp[0][0][0]=0;

    for(long long i=1;i<=n;i++)
    {
        for(long long j=0;j<=k;j++)
        {
            dp[i][j][0]=max(dp[i-1][j][0],dp[i-1][j][1]);
            if(j)
            {
                dp[i][j][1]=max(dp[i-1][j-1][1],dp[i-1][j-1][0])+a[i];
                dp[i][j][1]=max(dp[i][j][1],dp[i-1][j][1]+a[i]);
            }
            //cout<<i<<" "<<j<<" "<<dp[i][j][0]<<" "<<dp[i][j][1]<<endl;
        }
    }

    long long ans=0;
    for(int i=0;i<=k;i++)
        ans=max(ans,max(dp[n][i][0],dp[n][i][1]));

    cout<<ans<<endl;
}

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	read();
	solve();
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...