Pagini recente » Cod sursa (job #447631) | Cod sursa (job #2001631) | Cod sursa (job #1159997) | Autentificare | Cod sursa (job #1814)
Cod sursa(job #1814)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NMAX 1024
#define INF 2e9
#define MAX(a, b) ( (a) < (b) ? (b) : (a) )
int A[NMAX];
int B1[NMAX], B2[NMAX];
int V[NMAX], N, K;
int i, j, k, Sol;
int main()
{
freopen("ferma.in", "r", stdin);
freopen("ferma.out", "w", stdout);
scanf("%d %d", &N, &K);
for (i = 1; i <= N; i++) scanf("%d", &V[i]);
K++;
for (i = 1; i <= K; i++)
{
if (i == K) Sol = MAX(A[N], B1[N]);
for (j = 1; j <= N; j++)
{
A[j] = MAX(A[j-1], B1[j]) + V[j];
B2[j] = MAX(B2[j-1], A[j-1]);
}
memcpy(B1, B2, sizeof(B2));
}
Sol = MAX(Sol, A[N]);
if ( Sol < 0 ) printf("0\n");
else printf("%d\n", Sol);
fclose(stdin);
fclose(stdout);
return 0;
}