Pagini recente » Cod sursa (job #1998079) | Cod sursa (job #1874740) | Cod sursa (job #777069) | Cod sursa (job #2055731) | Cod sursa (job #761738)
Cod sursa(job #761738)
Program podm;
const inf=1000000000000;
var a:array [0..505,0..505] of int64;
d:array [0..505] of integer;
b1:array [1..1 shl 10] of char;
i,j,n,k,w:integer;
p1,p2,p3:int64;
fi,fo:text;
function min(a,b:int64):int64;
begin
if a<b then min:=a else min:=b;
end;
begin
assign(fi,'podm.in');
assign(fo,'podm.out');
settextbuf(fi,b1);
reset(fi); rewrite(fo); readln(fi,n);
for i:=0 to n do read(fi,d[i]);
for i:=1 to n-1 do begin
p1:=d[i-1]; p2:=d[i]; p3:=d[i+1];
a[i,i+1]:=p1*p2*p3;
end;
for w:=2 to n-1 do
for i:=1 to n-w do begin
j:=i+w;
a[i,j]:=inf;
for k:=i to j-1 do begin
p1:=d[i-1]; p2:=d[i]; p3:=d[i+1];
a[i,j]:=min(a[i,j],a[i,k]+a[k+1,j]+p1*p2*p3);
end;
end;
write(fo,a[1,n]);
close(fo);
end.