比赛 20111107 评测结果 C
题目名称 删数 最终得分 0
用户昵称 临轩听雨ゐ 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-07 11:29:55
显示代码纯文本
#include <iostream>   
#include <cstdio>   
using namespace std;  
	int n;
	int i,k,j;
	int f[101][101]={0};
	int x[101];
int main()
{
	freopen ("remove.in","r",stdin);   
    freopen ("remove.out","w",stdout);
	cin>>n;
	for(i=0;i<n;i++)
	{
		cin>>x[i];
		f[i][i]=x[i];
	}
	for(i=n-1;i>=0;i--)
	{
		for(k=i+1;k<n;k++)
		{
			for(j=i+1;j<k;j++)
			{
				if(f[i][j]+abs(double(x[i]-x[j-1]))*(j-i)>f[i][k])
					f[i][k]=f[i][j]+abs(double(x[i]-x[j-1]))*(j-i);
			}
			for(j=j-1;j>i;j--)
			{
				if(f[i][j]+abs(double(x[i]-x[j+1]))*(i-j)>f[i][k])
				f[i][k]=f[i][j]+abs(double(x[i]-x[j+1]))*(i-j);
			}
		}
	}
	cout<<f[0][n-1];
	return 0;
}