hchx 2013-10-21 03:13:00
点我顶贴
收藏
删除
var f:array [1..100,1..200] of longint;
v:array [1..100] of longint;
n,i,j,k,max:longint;
begin
read(n);
for i:=1 to n do
read(v[i]);
for j:=2 to n do
for i:=1 to n do
begin
for k:=i to i+j-2 do
if f[i,i+j-1]<f[i,k]+f[k,i+j-1]+v[(i-1) mod n+1]*v[(k) mod n+1]*v[(i+j-1) mod n+1] then
f[i,i+j-1]:=f[i,k]+f[k,i+j-1]+v[(i-1) mod n+1]*v[(k) mod n+1]*v[(i+j-1) mod n+1];
end;
max:=0;
for i:=1 to n do
if f[i,i+n-1]>max then max:=f[i,i+n-1];
writeln(max);
end.