智商游戏
时间限制:1秒 内存限制:64M
题目描述
小A同学总感觉自己智商超群,聪明绝顶,自以为天下无敌,这天,小A同学从一本古老秘籍中找到了一个考验智商的游戏,没想到却被难住,游戏规则如下:
有n个石头,每个石头都有自己的重量,经过n-1次操作,要把n个石头合和一个石头。
每次有限制:
只能把相邻的两个石头合并成一个石头。
新的一堆的石头重量,记为该次合并的得分
求出得分的最大值。
输入描述
多组输入,输入0表示结束。
每组数据如下所示:
第一行为石头个数n
第二行为每个石头重量,每两个数之间用一空格分隔。
输出描述
每组数据输出当前数据能获取的最高分。
样例
输入
4 4 5 9 4 0输出
54
提示
石头数量不超过100个。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=205;
int n,a[N],f1[N][N];
int main(){
while(cin>>n){
memset(f1,0,sizeof f1);
memset(a,0,sizeof a);
if(n==0) return 0;
for(int i=1;i&l