Pagini recente » Cod sursa (job #1468876) | Cod sursa (job #419735) | Cod sursa (job #114091) | Cod sursa (job #354725) | Cod sursa (job #2921492)
#include <fstream>
#import <algorithm>
#import <vector>
#import <map>
#import <set>
#import <deque>
#import <queue>
#import <cassert>
//#import <cmath>
#import <cstring>
#import <cctype>
#import <cstdlib>
#import <stack>
#define int long long
using namespace std;
main()
{
ifstream cin("ferma.in");
ofstream cout("ferma.out");
int n,k;
cin>>n>>k;
vector<vector<int>>dp(k+1,vector<int>(n+1,-2e9));
dp[0][0]=0;
vector<int>a(n+1,0);
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int j=1;j<=k;j++)
{
for(int i=j;i<=n;i++)
{
dp[j][i]=max(dp[j-1][i-1],dp[j][i-1])+a[i];
}
int maxx=-2e9;
for(int i=j;i<=n;i++)
{
maxx=max(dp[j][i],maxx);
dp[j][i]=maxx;
}
}
int rez=dp[k][n];
int s=0;
for(int i=n;i>k;i--)
{
s+=a[i];
rez=max(rez,s+dp[k][i-1]);
}
cout<<max(rez,0);
}