jesse 2011-08-13 10:41:00
点我顶贴
收藏
删除
program strings;
var
n,i,j,k,ans:longint;
f:array[0..200,0..200]of longint;
a:array[0..200]of longint;
begin
readln(n);
for i:=1 to n do read(a[i]);
a[0]:=a[n];
a[n+1]:=a[1];
fillchar(f,sizeof(f),0);
for i:=2 to n do
for j:=1 to n do
for k:=1 to i-1 do
if f[(j+k) mod n,i-k]+f[j,k]+a[j-1]*a[j+k-1]*a[j+i-1]>f[j,i]
then f[j,i]:=f[(j+k) mod n,i-k]+f[j,k]+a[j-1]*a[j+k-1]*a[i+j-1];
for i:=1 to n do
if ans<f[i,n] then ans:=f[i,n];
writeln(ans);
end.