Cod sursa(job #346656)

Utilizator Andrei200Andrei200 Andrei200 Data 8 septembrie 2009 21:08:17
Problema Ferma Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <cstdio>
#include <cstring>

#define file_in "ferma.in"
#define file_out "ferma.out"

#define Nmax 10010
#define Kmax 1001

int N,K;
int i,j,k,sum;
int A[Kmax][Nmax];
int P[Nmax];
int S[Nmax];

inline int max(int a, int b) { return a>b?a:b; }

int main()
{
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%d %d", &N, &K);
	S[0]=0;
	for (i=1;i<=N;++i)
	{
		scanf("%d", &P[i]);
		S[i]=S[i-1]+P[i];
	}
	memset(A,0,sizeof(A));
	for (i=1;i<=K;++i)
		 for (j=1;j<=N;++j)
		 	 for (k=1;k<j;++k)
			     A[i][j]=max(A[i][j-1],A[i-1][k]+S[j]-S[k]);
		 
		 
	/*for (i=1;i<=K;++i)
	{
        for (j=1;j<=N;++j)
              printf("%d ", A[i][j]);
		printf("\n");
	}*/
	printf("%d", A[K][N]);

	fclose(stdin);
	fclose(stdout);
	
	return 0;
}