Pagini recente » Cod sursa (job #33440) | Cod sursa (job #29650) | Cod sursa (job #619352) | Cod sursa (job #19606) | Cod sursa (job #407278)
Cod sursa(job #407278)
#include <cstdio>
#include <string>
#define nmax 10005
#define kmax 1005
using namespace std;
int N, K, a [nmax];
int dp [kmax][nmax];
int i, j, k, sum [nmax], maxim, x;
int main () {
freopen ("ferma.in", "r", stdin);
freopen ("ferma.out", "w", stdout);
scanf ("%d%d\n", &N, &K);
for (i = 1; i <= N; i++) {
scanf ("%d", &x);
sum [i] = sum [i - 1] + x;
}
for (i = 1; i <= K; i++)
for (j = 1; j <= N; j++) {
maxim = -10000;
for (k = 1; k < j; k++)
if (sum [j] - sum [k] + dp [i - 1][k] > maxim)
maxim = sum [j] - sum [k] + dp [i - 1][k];
dp [i][j] = max (dp [i][j - 1], maxim);
}
printf ("%d\n", dp [K][N]);
return 0;
}