Pagini recente » Cod sursa (job #909044) | Cod sursa (job #1661831) | Cod sursa (job #334297) | 2 | Cod sursa (job #221940)
Cod sursa(job #221940)
#include<stdio.h>
#define NMAX 10024
#define KMAX 1024
#define inf 1<<30
int V[NMAX];
int A[KMAX][NMAX],B[KMAX][NMAX];
inline int max(const int a,const int b){ return a>b?a:b; }
void select_answer(const int N,const int K)
{
int SOL=0;
SOL=max( A[K][N], A[K+1][N] );
printf("%d\n",SOL);
}
int main()
{
freopen("ferma.in","r",stdin);
freopen("ferma.out","w",stdout);
int N,K;
scanf("%d%d",&N,&K);
++K;
int i,j;
for(i=1; i<=N; ++i) scanf("%d",&V[i]);
for(j=1; j<=N; ++j)
{
for(i=1; i<=K && i<=j; ++i)
{
A[i][j]=max( max(A[i-1][j-1], A[i][j-1]), B[i-1][j-1] );
A[i][j]+=V[j];
B[i][j]=max( A[i][j-1], B[i][j-1] );
}
for(i; i<=K; ++i)
A[i][j]=B[i][j]=-inf;
}
select_answer(N,K);
return 0;
}