记录编号 |
32653 |
评测结果 |
AAAAAAAAAA |
题目名称 |
删数 |
最终得分 |
100 |
用户昵称 |
fanzeyi |
是否通过 |
通过 |
代码语言 |
C |
运行时间 |
0.022 s |
提交时间 |
2011-11-07 16:18:13 |
内存使用 |
0.28 MiB |
显示代码纯文本
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 101
int n;
int f[MAX][MAX];
int num[MAX];
inline int max(int a, int b) {
return a > b ? a : b;
}
int main() {
FILE *fin = fopen("remove.in", "r");
FILE *fout = fopen("remove.out", "w");
int i, j, k;
int a;
memset(f, 0, sizeof(0));
fscanf(fin, "%d", &n);
for(i = 1; i <= n; i++) {
fscanf(fin, "%d", &num[i]);
f[i][i] = num[i];
}
for(i = n; i > 0; i--) {
for(j = i+1; j <= n; j++) {
f[i][j] = abs(num[i] - num[j]) * (j - i + 1);
for(k = i; k < j; k++) {
f[i][j] = max(f[i][j], f[i][k] + f[k+1][j]);
}
}
}
fprintf(fout, "%d\n", f[1][n]);
return 0;
}