Submission #7635

#TimeUsernameProblemLanguageResultExecution timeMemory
7635myungwoo수열 (APIO14_sequence)C++98
0 / 100
0 ms2680 KiB
#include <stdio.h>

#define MAXN 1004
#define MAXK 202

int N,K,A[MAXN],S[MAXN],D[MAXN][MAXK],P[MAXN][MAXK];

int main()
{
	int i,j,k;
	scanf("%d%d",&N,&K);
	for (i=1;i<=N;i++) scanf("%d",A+i), S[i] = S[i-1]+A[i];
	for (j=1;j<=K;j++){
		for (i=1;i<=N;i++){
			D[i][j] = -1;
			for (k=j;k<i;k++){
				if (D[i][j] < D[k][j-1]+(S[i]-S[k])*S[k])
					D[i][j] = D[k][j-1]+(S[i]-S[k])*S[k], P[i][j] = k;
			}
		}
	}
	printf("%d\n",D[N][K]);
	for (i=N,j=K;i;){
		if (i < N) printf("%d ",i);
		i = P[i][j]; j--;
	} puts("");
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...